4

我修改了web.config連接字符串。但是,在調試期間,我仍然看到舊的連接字符串。如何更新實體框架連接字符串

所以,我已經評論(並刪除)了舊的連接字符串,但是,並且通過服務器資源管理器添加了一個新的連接資源。在測試通過服務器瀏覽器左側面板上的嚮導連接 - 它說連接。

按照這個嚮導,當我訪問web.config時,我沒有看到新的連接字符串。

問題:我懷疑,我是不是以下步驟添加一個連接字符串 - 從設計師(在設計師的屬性面板 我怎麼可以添加或更新連接字符串,編輯變灰,輸出類型爲打造集會,並右擊只給了我選擇加入實體等,刪除字符串,並運行應用程序,不適用於連接字符串嚮導)提示

下面是字符串 -

<connectionStrings><add name="MaintRecordsDB_v1" connectionString="metadata=res://*/Models.DB.Model.csdl|res://*/Models.DB.Model.ssdl|res://*/Models.DB.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxx.sample.net;initial catalog=MainDB;user id=maintRoot;password=hidden;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /><add name="MainDBentities" connectionString="metadata=res://*/Models.DB.Model.csdl|res://*/Models.DB.Model.ssdl|res://*/Models.DB.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=windflower.arvixe.com;initial catalog=MX_Dashboard;user id=maintRoot;password=hidden;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings> 

編輯問題2:如何添加另一個EF連接字符串,例如: MaintDB2使用設計器,我在哪裏手動更新。

回答

2

如果不知道你的上下文類是什麼樣子,說你的DbContext類,如果它是生成的並假設它是部分的,你可以嘗試用一個構造函數向它添加另一個部分類部分,該構造函數將一個命名連接字符串作爲參數。

首先添加一個名爲連接到你的app.config/web.config中:

<connectionStrings> 
... 
<add name="MyOtherConnection" connectionString="metadata=res://*/blahblahblah;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=ABunchOfOtherStuff;" 
    providerName="System.Data.EntityClient" /> 
</connectionStrings> 

然後在另一個添加匹配部分類(非生成)與構造帶的連接字符串文件的文件名:

// the class name must match the name of your existing context 
public partial class MyContext : DbContext 
{ 
    public MyContext(string connectionStringName) : base("name=" + connectionStringName) 
    { 
    } 
} 

隨後通過在連接字符串的名稱中使用您的背景下,一些無用的代碼所示:

// ... 
using (var context = new MyContext("MyOtherConnection")) 
{ 
    var id = 1; 
    var collection = context.MyEntities.Where(a => a.ID == id).ToList(); 
} 
1

在MVC中有幾件事是基於公約。它比慣例更喜歡配置。按照慣例,這兩件事之間應該有聯繫。的DbContext的類名匹配的連接字符串爲它由約定正常工作

  1. 類從繼承的DbContext說

    公共類DbPersonContext:的DbContext {...}

  2. 必須有一個連接字符串的名稱

相關問題