我有两张桌子,Plan和Ticket。我想要TravelPlan中的所有记录,但不是Ticket中的记录。
Template.Criteria.CreateCriteria("Plan")
.Add(Subqueries.PropertyNotIn("UserID",
DetachedCriteria.For(typeof(Ticket))
.SetProjection(Projections.Property("UID"))));
以上查询不会返回任何记录..
答案 0 :(得分:1)
我无法猜测SearchTemplate的作用,但您将投影应用于外部标准而不是分离标准。
此外,“root”标准应该是TravelPlan,而不是Ticket。
换句话说:
criteria = DetachedCriteria.For<TravelPlan>()
.Add(Subqueries.PropertyNotIn(
"UserId",
DetachedCriteria.For<Ticket>()
.SetProjection(Projections.Property("UID"))))
这假设TravelPlan的UserID
属性与Ticket中的UID
属性匹配。