這是非常簡單的。我有:
public WMSEntities() : base("name=WMSEntities") //WMSEntities is conection string name in web.config also the name of Entitiframework
{
}
已經在EDMX文件夾
的自動生成Model.Context.cs連接到多個數據庫在運行時,我創造了另一個構造函數連接字符串作爲參數,如下面在同一個文件模型。 Context.cs
public WMSEntities(string connStringName)
: base("name=" + connStringName)
{
}
現在我添加其他連接字符串中的Web.Config例如
<add name="WMSEntities31" connectionString="data source=TESTDBSERVER_NAME;initial catalog=TESTDB;userid=TestUser;password=TestUserPW/>
<add name="WMSEntities" connectionString="data source=TESTDBSERVER_NAME12;initial catalog=TESTDB12;userid=TestUser12;password=TestUserPW12/>
然後連接到數據庫,當我撥打下面的方法傳遞connetionString名作爲參數
public static List<v_POVendor> GetPOVendorList(string connectionStringName)
{
using (WMSEntities db = new WMSEntities(connectionStringName))
{
vendorList = db.v_POVendor.ToList();
}
}
最多,你將最終獲得2種環境中,還是有一些解決方法,但非常少的實際和EF6預計將支持多個數據庫。您可以檢查測試版,在您的應用準備就緒後,EF6將會發布。但是,所有數據庫都是一個組織的一部分,然後將它們與其他外鍵合併爲一個數據庫,並使報告更容易。 –
啊,我看到問題在於,製造第一個工資系統的人非常堅持我們要保持數據庫結構一致,他說,這樣公司會更願意升級到更新的版本,不需要做任何數據庫遷移。 – ChaoticLoki
那麼這是維護噩夢,你將無法通過連接進行交叉數據庫查詢。我不確定EF6,但你可以檢查codeplex。 –