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