我們有一個由兩個項目組成的解決方案 - 控制檯應用程序項目和Web應用程序項目。它們中的每一個在模式中都是相同的,但是用不同的名稱.edmx文件來訪問同一個數據庫。實體框架錯誤 - 「EntityContainer名稱必須是唯一的」
控制檯應用程序作爲計劃任務在託管Web應用程序的同一臺服務器上運行。 Web應用程序包含對控制檯應用程序的引用,因爲Web應用程序中的某些操作會導致調用控制檯應用程序中的方法。 這個組合已經在我們的登臺環境中成功運行了好幾個月。
當發佈現場,我們看到了以下錯誤消息,每天至少一次:指定
模式是無效的。錯誤:
ProjectName.csdl(3,4):錯誤0019:EntityContainer名稱必須是 唯一。名稱爲「ProjectEntities」的EntityContainer已定義爲 。 ProjectName.csdl(63,4):錯誤0019: 架構中的每個類型名稱必須是唯一的。類型名稱'ProjectModel.DataSource'已經定義爲 。 ProjectName.csdl(75,4):錯誤0019: 架構中的每個類型名稱必須是唯一的。類型名稱'ProjectModel.Error'已定義爲 。
這繼續,列出我們的模式中的所有類型名稱。
可以通過回收應用程序池或重新啓動IIS來解決此錯誤。
請注意,直到Web應用程序運行一段時間後纔會發生錯誤 - 當我們編譯或第一次訪問應用程序時,不會發生此錯誤。
我最初的理論是,兩個實體容器互相沖突,因爲Web應用程序引用了控制檯應用程序,但它們有不同的名稱,這會導致錯誤「EntityContainer名稱必須是唯一的,一個名稱爲EntityContainer 'ProjectEntities'已經被定義爲「令人困惑。
檢查此鏈接[1]:http://stackoverflow.com/questions/4898794/the-entitycontainer-name-must-be-unique-in-different-assemblies,這適用於我。我希望能幫到你! – 2015-07-02 00:46:02