2013-05-02 111 views
1

遷移從ObjectContext的到的DbContext代碼生成,我意識到產生的上下文類(其從的DbContext繼承)沒有構造,其接收的ConnectionString既不EntityConnection(像ObjectContext的子類有)。實體框架的DbContext動態實例化與自定義連接字符串

這是我的應用程序中的問題,因爲我需要使用運行時生成的連接字符串從具體的Type動態實例化我的上下文。

回答

1

在你的類繼承的DbContext,你應該能夠指定基本構造函數連接刺痛:

public class MyDbContext : DbContext 
{ 
    public MyDbContext(string connString) 
     : base(connString) 
    { 
    } 
} 

你將不得不雖然使用SQLConnection建設者:

SqlConnectionStringBuilder connBuilder= new SqlConnectionStringBuilder(dbConnString); 

並在您的構造函數中使用它:

MyDbContext dbContext = new MyDbContext(connBuilder.ToString()); 
+0

嗨Ezakiel!這是更合乎邏輯的方式。但我無法修改我的類MyDbContext添加該構造函數。 ObjectContext適合我的需求,提供開箱即用的連接字符串的構造函數,不能相信這是在DbContext中沒有考慮 – Tuk 2013-05-02 15:19:48

+0

編輯的答覆和添加「部分」的類definiton解決您的問題;現在你不必編輯生成的代碼 – jlsfernandez 2013-06-26 11:12:48

+0

是不是應該立即生成? – 2014-02-14 11:50:50

0

This help me:

public MyDatabaseContext():base("name=MyConnectionString") 
    { 
    } 
相關問題