目前網路上找到比較適合我的方式
修改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