0

私は2つのテーブル、PlanとTicketを持っています。私はTravelPlanにあるがTicketにはないすべてのレコードを欲しい。上記のクエリはすべてのレコードを返すdoes notのNHibernateクエリのヘルプ

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

..

答えて

1

私はSearchTemplateが何をするかを推測することはできませんが、外側の基準の代わりに、デタッチ1に投影を適用しています。

また、「ルート」基準は、チケットではなく、トラベルプランである必要があります。言い換えれば

criteria = DetachedCriteria.For<TravelPlan>() 
       .Add(Subqueries.PropertyNotIn(
         "UserId", 
         DetachedCriteria.For<Ticket>() 
          .SetProjection(Projections.Property("UID")))) 

これはTravelPlanはチケットにUIDプロパティと一致しているUserID性質を持っている前提としています。