【发布时间】:2011-09-15 20:15:38
【问题描述】:
我正在尝试使用 Nhibernate Criteria API 重现查询,但无法弄清楚如何添加允许我比较来自不同表的两个值的条件子句。
我能想到的最好的简单例子......
SELECT e.LastName
FROM Employee e
JOIN Chair c ON c.ChairId = e.ChairId
WHERE e.Weight > c.MaxLoad
我的基本 Nhibernate 标准
ICriteria criteria = base.Session.CreateCriteria(typeof(Employee));
criteria.CreateAlias("Employee.Chairid", "Chair", JoinType.InnerJoin);
create alias 的一个重载有一个额外的参数“withClause”,这似乎是实现这一点的建议方法,但在我的一生中,我找不到实现这一点所需的语法示例。
我想我需要一些类似...的东西
criteria.Add(Expression.Ge("Employee.Weight", "Chair.MaxLoad"));
但这显然不起作用,因为第二个参数将作为字符串值处理。
任何帮助表示赞赏。
【问题讨论】: