我被卡住了。我花了將近一天的時間來解決,但無濟於事。實體框架中的connectionString
問題:使用實體框架連接到生產數據庫。
我連接開發很好。
<add name="DefaultConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MONDO;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="MONDOEntities" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;Initial Catalog=MONDO;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
移動到生產中,我使用(從生產web.config文件)現有的 「DefaultConnectionString」 參數(ID和密碼)來編輯MONDOEntities的connectionString。 (我可以這樣做嗎?)另外,我將MONDOEntities中的元數據擴展爲包含.csdl,.ssdl,.msl,並在前綴(猜測,我可以這樣做嗎?)MONDO。粗體部分從dev web.config更改爲生產web.config。 *請注意,下面的connectionStrings不是由Visual Studio創建的,我只是自己改變了一些信息,試圖讓它在生產環境中工作。
<add connectionString="Data Source=MPOC\SQLEXPRESS;Database=Mondo;User ID=xxx;Password=xxxxx;" name="DefaultConnectionString" />
<add name="MONDOEntities" connectionString="metadata=res://*/MONDO.csdl|res://*/MONDO.ssdl|res://*/MONDO.msl;provider=System.Data.SqlClient;provider connection string="Data Source=MPOC\SQLEXPRESS;persist security info=True;Database=Mondo;User ID=xxx;Password=xxxxx;MultipleActiveResultSets=Tru e;App=EntityFramework"" providerName="System.Data.EntityClient" />
我得到的錯誤消息是: 無法加載指定的元數據資源。
Line 62: /// Initializes a new MONDOEntities object using the connection string found in the 'MONDOEntities' section of the application configuration file.
Line 63: /// </summary>
Line 64: public MONDOEntities() :
問題:可以,我只是手工修改的ConnectionStrings或是否需要通過一個彙編程序運行?這是一個網站項目,因此它在我上傳到產品後第一次編譯。它不會在我的本地開發計算機上進行預編譯。我猜,底線,我如何爲生產中的數據庫的實體連接設置適當的connectionString?
我在一個項目,我需要學習一個現有的網站。我正在進行第一次錯誤修復並學習了ado.net,我創建了一個實體數據模型並對代碼進行了一些更改。一切工作順利進行。
我將文件移動到生產,然後我得到這個錯誤:
"The specified default EntityContainer name 'MONDOEntities' could not be found in the mapping and metadata information.
Parameter name: defaultContainerName"
我GOOGLE了此錯誤信息,並根據一些發現,我擴大如下圖所示我的「元數據」。這是更黑暗中拍攝的我:
ORIGINAL(在web.config中自動生成的,當我創建實體數據模型):
connectionString="metadata=res://*
NEW(我編輯/添加此):
connectionString="metadata=res://*/MONDO.csdl|res://*/MONDO.ssdl|res://*/MONDO.msl;
這似乎讓過去的第一個錯誤,我得到一個新的錯誤信息(如OP發佈):
Unable to load the specified metadata resource.
Line 62: /// Initializes a new MONDOEntities object using the connection string found in the 'MONDOEntities' section of the application configuration file.
Line 63: /// </summary>
Line 64: public MONDOEntities() :
我認爲我的元數據信息存在問題。但是,假設原始的自動生成的connectString只包含「metadata = res:// *」,我真的不知道如何去糾正這個問題。實際上,我甚至不確定這是問題的根源。
底線,我的實體模型在dev中平滑工作,但沒有連接到生產中。任何想法都讚賞......謝謝。
下面是我的研究到目前爲止:oops,我會在下面發表,不在這裏的評論部分...沒有格式在這裏......; -x – nanonerd 2012-07-17 23:06:21