2015年1月14日 星期三

Visual Studio Entity Framework 設定連線字串問題

繼之前連線字串加密問題後
今天使用vs2013開發新增一個ADO .net 實體模型
後來無法自定連線字串
找了一下 有關Entity Framework在程式中給連線字串這篇也遇到同樣的問題
後來與同事討論有幾種改法
1.修改xxx.Context.cs
 
 public xxxEntities()
   : base("name=xxxEntities")
{
}
把name=xxxEntities改成需要的conectionstring如果有加解密可以寫一個function去呼叫
這樣就沒事了嗎錯!!!
如果model改了剛寫的都白寫了

2.修改xxx.Context.tt
修改範本方式找到以下做修改成需要的
但如果不是很有把握千萬別亂修改
找到如下
 
public <#=code.Escape(container)#>()
        : base("name=<#=container.Name#>")
    {
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
        this.Configuration.LazyLoadingEnabled = false;
<#
}
#>
    }
修改成
 
 public <#=code.Escape(container)#>()
        : base(你要的function)
    {
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
        this.Configuration.LazyLoadingEnabled = false;
<#
}
#>
    }
有更好的解法再等大家提供喔!!