忽然間,我在實例化生成的ObjectContext
類時不斷收到MetadataException
。 App.Config中的鏈接字符串看起來是正確的 - 自上次工做以來沒有改變 - 我嘗試從底層數據庫從新生成一個新模型(edmx文件)而沒有任何變化。 web
有人有主意嗎? sql
更多細節:我沒有更改任何屬性,我沒有更改任何輸出程序集的名稱,我沒有嘗試在程序集中嵌入EDMX。 我離開工做只等了10個小時,直到我回來。 而後它再也不工做了。 數據庫
我試太重新建立EDMX。 我試太重新建立這個項目。 我甚至嘗試從頭開始從新建立數據庫。 沒有運氣,不管如何。 app
這個小改動有助於解決這個問題。 ide
我有3個項目的解決方案。 spa
connectionString="metadata=res://*/Model.Project.csdl|res://*/Model.Project.ssdl|res://*/Model.Project.msl;
改爲 code
connectionString="metadata=res://*/;
我也有這個問題,由於個人web.config中的鏈接字符串與個人EDMX所在的程序集的app.config中的鏈接字符串略有不一樣。 不知道爲何會改變,但這裏有兩個不一樣的版本。 ip
App.config中: ci
<add name="SCMSEntities" connectionString="metadata=res://*/Model.SMCSModel.csdl|res://*/Model.SMCSModel.ssdl|res://*/Model.SMCSModel.msl;provider=System.Data.SqlClient;provider connection string="data source=SANDIEGO\sql2008;initial catalog=SCMS;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
Web.config文件: 資源
<add name="SCMSEntities" connectionString="metadata=res://*/Model.SCMSModel.csdl|res://*/Model.SCMSModel.ssdl|res://*/Model.SCMSModel.msl;provider=System.Data.SqlClient;provider connection string="data source=SANDIEGO\sql2008;initial catalog=SCMS;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
修復它只是複製app.config字符串(注意最後的小差別 - 而不是「 App=EntityFramework
」它想要「 application name=EntityFramework
」)到web.config而且問題解決了。 :)
我有一樣的問題。 我用反射器查看了個人編譯後的dll,並看到資源的名稱不正確。 我更名了,如今看起來很好。
我有相似的錯誤。 我從新建立了這個項目(長篇故事),並從舊項目中刪除了全部內容。 我以前沒有意識到個人模型已經在名爲「模型」的目錄中,如今位於名爲「模型」的目錄中。 一旦我在Web.Config中更改了鏈接:
<add name="RecipeManagerEntities" connectionString="metadata=res://*/Model.Recipe.csdl
對此:
<add name="RecipeManagerEntities" connectionString="metadata=res://*/Models.Recipe.csdl
一切正常(將Model
更改成Models
)。 請注意,我必須在此字符串中更改這三個位置。
當我意外地將edmx文件的構建操做(在IDE中的屬性下顯示)從「EntityDeploy」切換爲「無」時,這發生在我身上。 EntityDeploy是爲您填充元數據的內容:請參閱http://msdn.microsoft.com/en-us/library/cc982037.aspx