使用NHibernate QueryOver表达式,如何与局部变量进行比较?
例如:
[数据库表]
1 - 01/01/2011
2 - 02/20/2011
3 - 03/09/2011
我希望查询看起来像:
SELECT * FROM Table WHERE '03/01/2011' >= DateColumn
'03 / 01/2011'是我传入的变量。
我试过了:
DateTime myDate = new DateTime(2011, 3, 1);
QueryOver.Of<Table>(() => tAlias).Where(() => myDate >= tAlias.DateColumn)
但是,这会引发以下异常:
无法找到属性myDate
有任何想法如何使用QueryOver表达式执行此操作?
答案 0 :(得分:4)
我从来没有尝试过使用无参数表达式的Where,如果你尝试了类似的东西(如果我正在使用QueryOver [表]我会使用什么,不确定是否与.Of [表]存在差异])?
.Where(r => r.DateColumn <= myDate)
我见过的所有例子都使用表达式右侧的常量,不确定是否有任何内容(编辑:查看上面的Phill评论,似乎NHibernate确实如此期望左边的列和右边的值。