zoukankan      html  css  js  c++  java
  • Entity Framework 异常: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。 关键字 'AS' 附近有语法错误。

    在使用 EF 的时候,突然发现更新后在服务器中运行出错,异常信息主要包含以下信息:

    'OFFSET' 附近有语法错误。
    在 FETCH 语句中选项 NEXT 的用法无效。
    关键字 'AS' 附近有语法错误。

    想到可能时因为本地开发环境的数据库版本高于服务器版本,导致 EF 生成了错误的 SQL 语句,但是不知道具体应该从哪里修改。

    经 google 后找到解决方案:

    找到 EF 对应生成的 edmx 文件,使用文本编辑器打开编辑,找到“ProviderManifestToken”这一属性,更新后的 EF 将此属性设为了 2012,而服务器中还是 2008 版本的数据库,所以将此修改为 2008 即可。保存后重新生成发布项目,问题解决。

    可选的配置值:

    internal class SqlProviderManifest : DbXmlEnabledProviderManifest
    {
        internal const string TokenSql8 = "2000";
        internal const string TokenSql9 = "2005";
        internal const string TokenSql10 = "2008";
        internal const string TokenSql11 = "2012";
        internal const string TokenAzure11 = "2012.Azure";
    //...

    来源:http://www.xdlysk.com/article/58058a4b479f7b540f9f5ef9

  • 相关阅读:
    i++ 与++i
    jquery下的domcument
    jquery
    MVC MVP MVVM
    两个for还是一个for?
    华为云服务器FTP连接
    vue-i18n 使用方法
    在本地运行vue build 文件
    vue项目中使用模拟数据 MOCK
    超简单 超详细 vue项目中使用svg图标 阿里巴巴图标库
  • 原文地址:https://www.cnblogs.com/xwgli/p/6295269.html
Copyright © 2011-2022 走看看