這已被問了幾次,但我一直沒有能夠爲我工作的任何建議。Windows Azure實體框架。不支持的關鍵字:'元數據'。
我有一個網站和SQL數據庫,我在本地構建,現在部署到Azure中。數據庫是網站的鏈接資源。我能夠瀏覽網站,甚至可以使用ADO.Net和標準連接字符串連接並運行對數據庫的查詢。
問題是當我嘗試連接使用實體框架我總是收到關鍵字不支持:'元數據'。我已經刪除了多個活動記錄集,並嘗試用''替換"',但它沒有工作。我完全被想法所困。
這已被問了幾次,但我一直沒有能夠爲我工作的任何建議。Windows Azure實體框架。不支持的關鍵字:'元數據'。
我有一個網站和SQL數據庫,我在本地構建,現在部署到Azure中。數據庫是網站的鏈接資源。我能夠瀏覽網站,甚至可以使用ADO.Net和標準連接字符串連接並運行對數據庫的查詢。
問題是當我嘗試連接使用實體框架我總是收到關鍵字不支持:'元數據'。我已經刪除了多個活動記錄集,並嘗試用''替換"',但它沒有工作。我完全被想法所困。
這裏是在Azure門戶定義我的連接字符串,對於DatabaseFirst方法:
metadata=res://*/mySuperModel.csdl|res://*/mySuperModelModel.ssdl|res://*/mySuperModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:myServerName.database.windows.net,1433;Initial Catalog=myDatabaseName;User [email protected];Password=myPasswordHere;"
與你和注意,連接類型是蔚藍的門戶網站「定製」比較。
我和OP有同樣的問題,但他的解決方案並不適合我。
這是一個連接字符串問題,但沒有引號。
既然花了兩天時間來解決,也許這將幫助別人:
在Azure託管時工作[我的ASP.NET MVC 4.5 /實體框架5.0應用程序的連接字符串(我開發針對SQL Server 2012本地,但將數據庫遷移到Azure SQL數據庫(使用SQL Database Migration Wizard))。我使用的數據庫首先創建我的.edmx文件(我從數據庫中生成的(數據)模型)是:
<add name="MYPROJECTENTITIES" connectionString="**metadata=**res://*/MODELS.MYPROJECTMODEL.csdl|res://*/MODELS.MYPROJECTMODEL.ssdl|res://*/MODELS.MYPROJECTMODEL.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:B6JD5K5EP4.database.windows.net,1433;Initial Catalog=MYPROJECT_DB;Integrated Security=False;User [email protected];Password=MYPASSWORDABC123;**MultipleActiveResultSets=True**;Encrypt=True;TrustServerCertificate=False"" providerName="System.Data.EntityClient"/>
採用大寫的文字是我的Azure的信息。顯然,你需要使用你自己的。
連接字符串的這一部分給我做惡夢,這可能會造成您的問題還有:
res://*/Models.MyProjectModel.csdl|res://*/Models.MyProjectModel.ssdl|res://*/Models.MyProjectModel.msl
這些提法都必須完全正確。讓我重複一遍:那些引用必須完全正確!
閱讀this article from 2008(「疑難解答實體框架連接字符串」)後,我所使用的.NET反射來看看MyProjectModel.dll(我的.dll文件的名稱(在您的項目可能有所不同)一樣,他暗示,並確保內部不過,連接字符串(它是由Entity Framework自動爲我生成的)是錯誤的,它沒有包含前綴,只要我添加了Models。 prefix(這就是.csdl/.msl/.ssdl在我的.dll文件裏面(可能與你的不同)),一切都很順利。看看你的.dll文件,看看它們是否匹配,如果不匹配,改變它們以匹配在.dll中出現的內容。閱讀上面的文章,如果我說的不夠清楚。)
您可以發佈您的完整連接字符串(省略服務器名稱和密碼)以及您使用的EF版本,以及您使用的方法(即, CodeFirst,ModelFirst,DatabaseFirst)。然後精確的堆棧跟蹤錯誤。至少2年以來,MARS不是SQL Azure的問題。 – astaykov
對不起。我傾向於在凌晨3點忘記事情。我也準備好了粘貼。我可以通過將'"'替換爲'並且通過將連接類型更改爲自定義來解決此問題,如下所述。 –