[WebConfig] 例外狀況: 對應和中繼資料資訊中找不到指定的預設 EntityContainer

  • 2287
  • 0

摘要:[WebConfig] 例外狀況: 對應和中繼資料資訊中找不到指定的預設 EntityContainer

我們在專案當中建立了一個 ADO.NET Entity Data Model

類別名稱: MyEntity

Namespace: MyProject.Data

 

在 WebConfig 中的連線字串如下


<connectionStrings>
<add name="MyDB_Entity" connectionString="metadata=res://*/Data.MyEntity.csdl|res://*/Data.MyEntity.ssdl|res://*/Data.MyEntity.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.10.10;initial catalog=MyDatabase;user id=myUserName;password=XXXXXXXXXX;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>

因為程式需要,我手動修改了 ConnectionString 的值 ,然後每次執行執行自己的函式來取得 MyEntity 的實體

 


    public static MyEntity GetMyEntity()
    {
        ConnectionStringSettings connStrs = ConfigurationManager.ConnectionStrings["MyDB_Entity"];
        string conn = connStrs.ConnectionString;
        return new MyEntity(conn);
    }

 

 

執行上述程式碼後跳出例外
 
對應和中繼資料資訊中找不到指定的預設 EntityContainer 名稱 'MyEntity'。

參數名稱: defaultContainerName

 

對照英文的例外訊息是

System.ArgumentException: The specified default EntityContainer name 'MyEntity' could not be found in the mapping and metadata information.
Parameter name: defaultContainerName
 
 
這很有機會是手殘把連線字串改錯的緣故,
經過仔細的比對之後果然如此 有幾個地方請特別注意檢查它們
1. metadata
2. provider
3. provider connection string
 
以我自己發生的狀況是在 metadata 中的 Data.MyEntity 寫錯導致對應失敗
說不定變更 Class 名稱或者改了 Namespace 也有可能
 
 
 
參考網址 NET.SITE.OUT