加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在NHibernate.Linq查询中的’OFFSET’错误附近获取不正确

发布时间:2020-12-15 23:26:18 所属栏目:百科 来源:网络整理
导读:我在使用NHibernate v4.0.0(.Net Framework 4.0)的ASP.NET MVC 4.0应用程序中遇到以下错误.此错误显示在NHibernate. Linq查询中 Incorrect syntax near 'OFFSET'.Invalid usage of the option FIRST in the FETCH statement. 在这一行 Line 23: public IList
我在使用NHibernate v4.0.0(.Net Framework 4.0)的ASP.NET MVC 4.0应用程序中遇到以下错误.此错误显示在NHibernate. Linq查询中

Incorrect syntax near 'OFFSET'.
Invalid usage of the option FIRST in the FETCH statement.

在这一行

Line 23:         public IList<Post> Posts(int pageNo,int pageSize)
Line 24:         {
Line 25:             var posts = _session.Query<Post>()  //here
Line 26:                                   .Where(p => p.Published) 
Line 27:                                   .Skip(pageNo * pageSize)

我在SO和其他网站上发现了一些类似的帖子.但是,他们建议使用SQL SERVER 2012而不是2008.是的,我的sql server版本是2008.但是,我使用ASP.NET MVC 5(.Net Framework 4.5)和NHibernate v3.3.1创建了另一个应用程序在相同的数据库和相同的SQL服务器版本.

一些类似的帖子:

> “Incorrect syntax near ‘OFFSET’” modift sql comm 2012 to 2008
> Pagination query for mssql server 2008 Throwing Incorrect syntax near ‘OFFSET’
> Making sense of ‘OFFSET/FETCH’ in SSMS 2012

所以,我不认为问题出在我的sql server版本中,至少在我的情况下.

我没有直接执行sql查询到ssms或通过命令对象.我正在使用NHibernate.Linq查询.

完整的NHibernate查询:

var posts = _session.Query<Post>()
                              .Where(p => p.Published)
                              .Skip(pageNo * pageSize)
                              .Take(pageSize)
                              .Fetch(p => p.Category)
                              .ToList();

我该如何解决这个问题.请指导我.

如果不充分,请向我询问更多信息.

谢谢 !!

解决方法

似乎NHibernate被错误地指示使用与SQL Serer 2012相关的方言

<property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property>

把它设置为2008年

<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>

它不会使用更高版本Implement paging (skip / take) functionality with this query的功能

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读