0

我有 2 张桌子,Plan 和 Ticket。我想要 TravelPlan 中但 Ticket 中没有的所有记录。

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

上面的查询不返回任何记录..

4

1 回答 1

1

我无法猜测 SearchTemplate 做了什么,但是您将投影应用于外部条件而不是分离的条件。

此外,“根”标准应该针对 TravelPlan,而不是 Ticket。

换句话说:

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

这假定 TravelPlan 具有与 Ticket 中的属性UserID匹配的UID属性。

于 2011-01-25T21:49:53.597 回答