好吧,我想重新創建一個使用EF 4.1創建的項目到EF 5.0,足夠簡單或者至少我認爲。一個在我的舊項目的一件事情是,我能在EF 4.1更改數據庫連接字符串在運行時:EF 5在運行時更改連接字符串
using (var myContext = new MyEntities(ConnectionString))
{
}
易peasy但在EF 5.0你必須以不同的方式做到這一點:
string connectionString = "data source=LocalHost;initial catalog=MyDatabase;user id=MyUserName;password=MyPassword;multipleactiveresultsets=True;App=EntityFramework";
using (var myContext = new MyEntities())
{
myContext.Database.Connection.ConnectionString = connectionString;
}
現在,這花了我兩個小時找出更好的一部分,所以我想我的問題是這是在運行時更改連接字符串的正確方法或不?如果這是他們爲什麼做這個改變?
我確實發現了這個Link但它沒有奏效。我收到了Ladislav Mrnka第一個回答的第一條評論中詳細描述的錯誤。我後來發現這個似乎很好的Link。
UPDATE
我重讀first link我張貼,我發現另一種解決辦法,我只是創建了一個局部類:
public partial class MyEntities : DbContext
{
public MyEntities(string connectionString) : base(connectionString)
{
Database.Connection.ConnectionString = connectionString;
}
}
你應該寫你的編輯作爲答案,並接受它... – SRKX
在你的答案,行'Database.Connection .ConnectionString = connectionString;'是多餘的,因爲該操作已經由基礎構造函數完成。 –