[轉]Entity Framework 異常: 'OFFSET' 附近有語法錯誤。\r\n在 FETCH 語句中選項 NEXT 的用法無效

https://blog.csdn.net/weixin_34321977/article/details/85850064html

在使用 EF 的時候,忽然發現更新後在服務器中運行出錯,異常信息主要包含如下信息:數據庫

'OFFSET' 附近有語法錯誤。\r\n在 FETCH 語句中選項 NEXT 的用法無效。\r\n關鍵字 'AS' 附近有語法錯誤。

想到可能時由於本地開發環境的數據庫版本高於服務器版本,致使 EF 生成了錯誤的 SQL 語句,可是不知道具體應該從哪裏修改。服務器

經 google 後找到解決方案:編輯器

找到 EF 對應生成的 edmx 文件,使用文本編輯器打開編輯,找到「ProviderManifestToken」這一屬性,更新後的 EF 將此屬性設爲了 2012,而服務器中仍是 2008 版本的數據庫,因此將此修改成 2008 便可。保存後從新生成發佈項目,問題解決。ide

可選的配置值:google

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";


//...

 

 

From:https://www.cnblogs.com/xuejianxiyang/p/10838599.html.net

相關文章
相關標籤/搜索