带子句用法的Nhibernate
我试图使用Nhibernate Criteria API重现一个查询,但无法确定如何添加一个Criteria子句,该子句允许我比较不同表中的两个值 我能想到的最简单的例子带子句用法的Nhibernate,nhibernate,criteria-api,Nhibernate,Criteria Api,我试图使用Nhibernate Criteria API重现一个查询,但无法确定如何添加一个Criteria子句,该子句允许我比较不同表中的两个值 我能想到的最简单的例子 SELECT e.LastName FROM Employee e JOIN Chair c ON c.ChairId = e.ChairId WHERE e.Weight > c.MaxLoad 我的基本Nhibernate标准 ICriteria criteria = base.Session.CreateCrit
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"));
但这显然不起作用,因为第二个参数将作为字符串值处理
感谢您的帮助。var employeeNames=Session.CreateCriteria(typeof(Employee))
var employeeNames = Session.CreateCriteria(typeof(Employee))
.CreateAlias("Chair", "c") // InnerJoin is implied
.Add(Restrictions.GtProperty("Weight", "c.MaxLoad"))
.SetProjection(Projections.Property("LastName"))
.List<string>();
.CreateAlias(“Chair”,“c”)//暗示了InnerJoin
.Add(限制.GtProperty(“重量”、“c.MaxLoad”))
.SetProjection(Projections.Property(“LastName”))
.List();
Restrictions.XxProperty()
约束就是您要寻找的,它将两个属性相互比较