2012-11-28 63 views
3

我在MVC 4項目中有一個實體,連接字符串由實體創建嚮導放置在web.config中。在MVC 4動態創建實體的DB連接字符串4

我需要改變這一點,並在運行時將密碼分配給連接字符串(它存儲在web.config外部)。

  1. 如何將web.config以外的值與存儲在web.config中的字符串結合?

  2. 或者我可以將實體連接完全移到web.config之外嗎?

這是現有的實體連接字符串:

add name="MyEntities" connectionString="metadata=res://*/Models.NewUsers.csdl|res://*/Models.NewUsers.ssdl|res://*/Models.NewUsers.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mydb;initial catalog=MyDatabase;persist security info=True;user id=sa;password=Mypassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings> 

回答

1

一個簡單的解決辦法可能是使用一些基於:

string con = ConfigurationManager.ConnectionStrings["PerinatalDataEntities"]. 
    ConnectionString; 
con = con.replace("user id=sa", "user id=MyUser"). 
    Replace("password=Mypassword","password=MyNewpassword") 

我相信也有一個連接建設者但我從來沒有用過它。

+2

使用EntityConnectionStringBuilder是一個更好的方法。 – andleer

3

爲2,你總是可以直接通過一項新的connectionString(而不是從web.config)的情況下,當你創建:

string newCS = "add name=..."; 
var context = new MyEntities(newCS); 

爲1,use EntityConnectionStringBuilder解析現有的CS或建立一個新的。