NHibernate QueryOver - 日期比较表达式

时间:2011-03-09 20:49:48

标签: c# nhibernate

使用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表达式执行此操作?

1 个答案:

答案 0 :(得分:4)

我从来没有尝试过使用无参数表达式的Where,如果你尝试了类似的东西(如果我正在使用QueryOver [表]我会使用什么,不确定是否与.Of [表]存在差异])?

.Where(r => r.DateColumn <= myDate)

我见过的所有例子都使用表达式右侧的常量,不确定是否有任何内容(编辑:查看上面的Phill评论,似乎NHibernate确实如此期望左边的列和右边的值。