1
我想創建一個到多個實體之間的連接查詢。正如我給出的例子,Fluent Nhibernate where子句一對多
UserEntity
public class UserEntity
{
public virtual int Id {get;set;}
public virtual IList<Card> Cards{get;set;}
}
而且CardEntity
public class CardEntity
{
public virtual int Id {get;set;}
public virtual int CardNumber {get;set;}
public virtual UserEntity User{get;set;}
}
UserMapping
public UserEntityMap()
{
Table("user");
Id(x => x.Id);
HasMany(x => x.Cards).KeyColumn("User_Id").Fetch().Join();
}
CardMapping
public CardEntityMap()
{
Table("card");
Id(x => x.Id);
Map(x => x.CardNumber);
References(x => x.User).Column("User_id");
}
查詢
var query = _session.QueryOver<UserEntity>();
if(!string.IsNullOrEmpty(cardNumber)
{
query.Where(x=>x.Cards.Any(c=>c.CardNumber == cardNumber)) /// Tried this get an error
}
我希望看到像
Select * from user u join card c on c.user_id=u.id where c.number=cardNumber
我知道必須有這樣做的邏輯方式,但我不能找出一個輸出。謝謝你的幫助。
好去處! ;)是的,'。任何'與LINQ ===查詢,而不是QueryOver –
感謝您的答案:)我會給JoinAilas一個嘗試。我嘗試查詢而不是QueryOver,但有一些屬性,我需要在QueryOver,所以我用它。我對使用JoinAlias或JoinQueyOver感到困惑,因爲我想必須有更簡單的方法或更好的方法來創建查詢。但我認爲我錯了 – eyildiz