NHibernate多标准困难

NHibernate多标准困难,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我在NHibernate条件搜索中遇到多个联接的问题。假设我有一张宠物桌,我想归还所有宠物类别为“狗”且主人性别为“雌性”的宠物,由宠物生日订购。我已经尝试了一系列的排列方式来获得这个结果,但一直没有弄明白。我的最新迭代如下: var recentPets = session.CreateCriteria(typeof(Pet)) .AddOrder(Order.Desc("PetBirthday")) .CreateCriteria("PetTy

我在NHibernate条件搜索中遇到多个联接的问题。假设我有一张宠物桌,我想归还所有宠物类别为“狗”且主人性别为“雌性”的宠物,由宠物生日订购。我已经尝试了一系列的排列方式来获得这个结果,但一直没有弄明白。我的最新迭代如下:

var recentPets = session.CreateCriteria(typeof(Pet))
            .AddOrder(Order.Desc("PetBirthday"))
            .CreateCriteria("PetType", "pt", JoinType.InnerJoin)
            .CreateCriteria("PetOwnerId", "po", JoinType.InnerJoin)
            .Add(Expression.Eq("pt.PetTypeName", petType))
            .Add(Expression.Eq("po.PersonGender", gender))
            .List<Pet>();
var recentPets=session.CreateCriteria(typeof(Pet))
.AddOrder(Order.Desc(“petbirth”))
.CreateCriteria(“PetType”、“pt”、JoinType.InnerJoin)
.CreateCriteria(“PetOwnerId”、“po”、JoinType.InnerJoin)
.Add(Expression.Eq(“pt.PetTypeName”,petType))
.Add(Expression.Eq(“po.PersonGender”,性别))
.List();

非常感谢你的帮助

您不使用Hibernate/Java持久性查询语言执行查询有什么原因吗

select p from Pet p
join p.owner o
where o.gender = :gender
and p.type.name = :petType
order by p.birthday

您不使用Hibernate/Java持久性查询语言执行查询有什么原因吗

select p from Pet p
join p.owner o
where o.gender = :gender
and p.type.name = :petType
order by p.birthday

尝试将pt.PetTypeName行向上移动一行,就在该表的联接下面。没有更多的信息,我很难提供更多的帮助。您应该查看正在生成的SQL,看看是否可以从中看出问题所在。尝试将pt.PetTypeName行向上移动一行,就在该表的联接下面。没有更多的信息,我很难提供更多的帮助。您应该查看正在生成的SQL,看看是否可以从中看出问题所在。