2015年5月29日 星期五

Visual Studio Entity Framework6 自定連線字串

繼上次Visual Studio Entity Framework 設定連線字串問題
目前網路上找到比較適合我的方式
修改Model中xxx.Context.cs
 
public xxxEntities()
   : base("name=xxxEntities")
{
}
改成如下後就能自帶Connection string
 
public xxxEntities(string ConnectionString)
            : base(ConnectionString)
        {
        }   
但上篇所提到的Model如果更新就會被改掉
所以要修改xxx.Context.tt
如果沒把握或看不懂千萬別亂改喔!!
找到
 
public <#=code.Escape(container)#>()
        : base("name=<#=container.Name#>")
    {
改成
 
 public <#=code.Escape(container)#>(string ConnectionString)
        : base(ConnectionString)
    {
使用方式如下
 
//自行加密
private static string conn = string.Format("metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string=\";data source={0};initial catalog={1};user id={2};password={3};MultipleActiveResultSets=True;App=EntityFramework\";", "datasource", "catalog", "id", "pw");
private xxxEntities db = new xxxEntities(conn);
要注意的是以下符號改為雙引號,這樣進行字串加密
& q u o t 
參考來源
Passing Connection String to Entity Framework 6