ADO.Net Entity Framework : (四) 從SQL連線字串建立EntityConnection
在使用 Entity Framework 時,我們會發現Entity Framework 吃的連線字串跟我們平常寫得不太一樣,EntityConnectionString 像下面這樣
<configuration>
<connectionStrings>
<add name="TestEntities" connectionString="metadata=res://*/Demo.DA.TestModel.csdl|res://*/Demo.DA.TestModel.ssdl|res://*/Demo.DA.TestModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=SQLEXPRESS;Initial Catalog=Test;Integrated Security=True;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
但如果專案裡,同時有用到原本的 SqlConnectionString 也有用到 Entity Framework 時,
又不想在config檔裡面同時存在兩組ConnectionString,
提供一個方法,可以用原本的ConnectionString,動態建立EntityConnection物件,如下
/// <summary>
/// 取得 EntityConnection
/// </summary>
/// <param name="connectionString">連線字串</param>
/// <returns>EntityConnection</returns>
public static EntityConnection GetEntityConnection(string connectionString)
{
EntityConnectionStringBuilder ecsb = new EntityConnectionStringBuilder();
ecsb.Metadata = string.Format(@"res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", "Demo.DA.TestModel");
ecsb.Provider = "System.Data.SqlClient"; ////不可省略
ecsb.ProviderConnectionString = connectionString;
EntityConnection ec = new EntityConnection(ecsb.ToString());
return ec;
}
注意上面的範例要將”Demo.DA.TestModel”替換成使用時的名稱
這樣就不用存在兩組相同的連線字串囉
參考資料
HOW TO:建立 EntityConnection 連接字串 (Entity Framework)
HOW TO:定義連接字串 (Entity Framework)
- 如果您覺得這篇文章有幫助,請您幫忙推薦一下或按上方的"讚"給予支持,非常感激
- 歡迎轉載,但請註明出處
- 文章內容多是自己找資料學習到的心得,如有不詳盡或錯誤的地方,請多多指教,謝謝