NHibernate查询帮助

NHibernate查询帮助,nhibernate,nhibernate-criteria,nhibernate-projections,Nhibernate,Nhibernate Criteria,Nhibernate Projections,我有两张桌子,计划和票。我要TravelPlan中的所有记录,但不要Ticket中的 Template.Criteria.CreateCriteria("Plan") .Add(Subqueries.PropertyNotIn("UserID", DetachedCriteria.For(typeof(Ticket)) .SetProjectio

我有两张桌子,计划和票。我要TravelPlan中的所有记录,但不要Ticket中的

    Template.Criteria.CreateCriteria("Plan")
              .Add(Subqueries.PropertyNotIn("UserID",
                                            DetachedCriteria.For(typeof(Ticket))
              .SetProjection(Projections.Property("UID")))); 

上面的查询没有返回任何记录。

我猜不出SearchTemplate做了什么,但是您将投影应用到外部条件,而不是分离的条件

此外,“根”标准应适用于TravelPlan,而不是Ticket

换言之:

criteria = DetachedCriteria.For<TravelPlan>()
               .Add(Subqueries.PropertyNotIn(
                        "UserId",
                        DetachedCriteria.For<Ticket>()
                            .SetProjection(Projections.Property("UID"))))
criteria=DetachedCriteria.For()
.Add(subquerys.PropertyNotIn(
“用户ID”,
DetachedCriteria.For()
.SetProjection(Projections.Property(“UID”))
这假设TravelPlan有一个与Ticket中的
UID
属性相匹配的
UserID
属性

    Template.Criteria.CreateCriteria("Plan")
              .Add(Subqueries.PropertyNotIn("UserID",
                                            DetachedCriteria.For(typeof(Ticket))
              .SetProjection(Projections.Property("UID"))));