使用 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)
但是,这会引发以下异常:
Could not find property myDate
关于如何使用 QueryOver 表达式执行此操作的任何想法?
最佳答案
我从来没有尝试过将 Where 与无参数表达式一起使用,如果您尝试这样的操作会怎样(如果我正在执行 QueryOver[Table],我会使用什么,不确定是否与 .Of[Table 有区别])?
.Where(r => r.DateColumn <= myDate)
我见过的所有示例也在表达式的右侧使用常量,不确定是否有任何内容(编辑:查看上面 Phill 的评论,NHibernate 似乎确实如此期望左侧的列和右侧的值)。
关于c# - NHibernate QueryOver - 日期比较表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5251980/