【发布时间】:2023-03-17 05:10:01
【问题描述】:
在我的项目中,Lines 可以分组,Group 的类型可以是 Crossing (1) 或 Parallel (2)。我需要找到至少具有一组指定类型(在本例中为 1)的所有行。给定行的 ID 可以位于组的 LineA 或 LineB 列上。这是我到目前为止的地方:
Criteria crit = session.CreateCriteria(typeof(Line), "ln");
DetachedCriteria count = DetachedCriteria.For<Group>()
.SetProjection(Projections.CountDistinct("Id"))
.Add(Expression.Or(
Expression.EqProperty("LineA", "ln.Id"),
Expression.EqProperty("LineB", "ln.Id")))
.Add(Expression.Eq("GroupTypeId", 1));
crit.Add(Subqueries.Gt(0, count));
【问题讨论】:
-
您的查询看起来不错。您是否正在寻找更好的方法来执行此操作,或者您的查询无法正常工作?
-
它不起作用。引发异常,但我不记得该消息。我得到了它的工作,并将发布答案
-
您应该花时间检查您收到的异常情况并将其与您的问题一起发布。
标签: nhibernate criteria subquery correlated-subquery