'OFFSET' 附近有语法错误。关键字 'AS' 附近有语法错误。

来源:互联网 发布:mac os x pc版下载 编辑:程序博客网 时间:2024/04/27 12:18

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


'OFFSET' 附近有语法错误。关键字 '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";

}

0 0
原创粉丝点击