在offset \ fetch子句中将参数更改为固定值

时间:2014-07-23 08:06:57

标签: nhibernate linq-to-nhibernate

我正在使用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源代码并调试了它们,但我找不到合适的地方来替换这些参数。

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

我在自定义Nhibernate ODBC方言中将UseVariableLimits设置为false。此外,我安装了NHibernate 4.0.0.-Alpha2 nuget包。

这解决了这个问题。希望NHibernate 4.0.0能够稳定并尽快发布。