MetadataException:無法加載指定的元數據資源

.net ado.net c# entity-framework

突然間,我在實例化生成的ObjectContext類時不斷收到MetadataException 。 App.Config中的連接字符串看起來是正確的 - 自上次工作以來沒有改變 - 我嘗試從底層數據庫重新生成一個新模型(edmx文件)而沒有任何變化。

有人有主意嗎?

更多細節:我沒有更改任何屬性,我沒有更改任何輸出程序集的名稱,我沒有嘗試在程序集中嵌入EDMX。我離開工作只等了10個小時,直到我回來。然後它不再工作了。

我試過重新創建EDMX。我試過重新創建這個項目。我甚至嘗試從頭開始重新創建數據庫。沒有運氣,無論如何。

一般承認的答案

這意味著應用程序無法加載EDMX。有幾件事可以導致這種情況。

  • 您可能已將模型的MetadataArtifactProcessing屬性更改為“複製到輸出目錄”。
  • 連接字符串可能是錯誤的。我知道你說你沒有改變它,但是如果你改變了其他東西(比如裝配的名稱),它仍然可能是錯的。
  • 您可能正在使用後編譯任務將EDMX嵌入到程序集中,該程序集由於某種原因不再起作用。

簡而言之,你的問題中沒有足夠的細節來給出準確的答案,但希望這些想法能讓你走上正軌。

更新:我寫了一篇博文,其中包含更完整的故障排除步驟


熱門答案

這個小改動有助於解決這個問題。

我有3個項目的解決方案。

connectionString="metadata=res://*/Model.Project.csdl|res://*/Model.Project.ssdl|res://*/Model.Project.msl;

改成

connectionString="metadata=res://*/;


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因