我正在使用NHibernate和Progress OpenEdge 11.3 Update 2 ODBC驱动程序。驱动程序(或OpenEdge)不允许偏移\ fetch子句中的参数。 offset \ fetch子句必须包含固定值。根据文档和本文: http://knowledgebase.progress.com/articles/Article/2916
不允许: select * from PUB.customer offset ?行获取下一个?行
Execption: 错误[HY000] [DataDirect] [ODBC进度OpenEdge线程协议驱动程序] [OPENEDGE] SQL语句中的语法错误或关于"?行获取下一个?只有行#34; (10713)
允许: select * from PUB.customer offset 10 行获取下一个 10 行
使用Linq时,如何修改NHibernate的行为以使用固定值而不是参数?
var customers = session.Query()。Skip(10).Take(10).ToList();
也许有人可以指出我正确的方向。我已经下载了NHibernate源代码并调试了它们,但我找不到合适的地方来替换这些参数。
谢谢!
答案 0 :(得分:0)
我找到了解决方案:
我在自定义Nhibernate ODBC方言中将UseVariableLimits设置为false。此外,我安装了NHibernate 4.0.0.-Alpha2 nuget包。
这解决了这个问题。希望NHibernate 4.0.0能够稳定并尽快发布。