2012-10-02 139 views
1

在MVC Web應用程序中,我想覆蓋基於我正在使用的開發計算機的連接字符串。我可以使用Web.config轉換,但我也需要覆蓋各種非web配置文件中的連接字符串。我可以使用SlowCheetah extension,但是最後我會爲訪問數據庫的每個項目創建相同的轉換。當項目變得更大並且擁有更多開發人員時,這是一個麻煩。覆蓋默認連接字符串

我想要做的是修改實體框架或ASP.NET尋找連接字符串的方式,添加一個我自己的類來查找連接字符串,並且只實現一次轉換邏輯。我希望使用Ninject只在相關時注入它。

是否有這樣一個「IConnectionStringProvider」接口,我可以實現和註冊,並自動使ASP.NET和EF使用它?

編輯。我發現this,但它似乎真正討厭。如果沒有更簡潔的方法,我只會使用多個相同的配置轉換,也許可以讓源代碼管理系統正確地複製它們。

回答

1

您可以告訴實體框架使用不同的連接字符串 - 它不必使用web.config中的默認連接字符串。

下面是一個例子:http://www.codeproject.com/Tips/234677/Set-the-connection-string-for-Entity-Framework-at

這裏是另一個:http://msdn.microsoft.com/en-us/library/bb738533.aspx

這取決於你如何建築師它的其餘部分。

我個人使用web.config中的應用程序設置來告訴我的代碼哪些連接字符串用於系統的特定部分,例如,

var connectionStringNameForMyFeature = ConfigurationManager.AppSettings["connectionStringNameForMyFeature"]; 

myFeature.ConnectionString = ConfigurationManager.ConnectionStrings[connectionStringName]; 
+0

+1將我指向ConfigurationManager類。 – zmbq