1

在 MVC Web 应用程序中,我想根据我正在使用的开发机器覆盖连接字符串。我可以使用 Web.config 转换,但我还需要覆盖各种非 Web 配置文件中的连接字符串。我可以使用SlowCheetah 扩展,但我最终将为每个访问数据库的项目创建相同的转换。当项目变得更大并且拥有更多开发人员时,维护起来很麻烦。

我想做的是修改 Entity Framework 或 ASP.NET 查找连接字符串的方式,添加我自己的查找连接字符串的类,并且只实现一次转换逻辑。我希望仅在相关时使用 Ninject 注入它。

是否有这样的“IConnectionStringProvider”接口我可以实现和注册,并自动让 ASP.NET 和 EF 使用它?

编辑。我找到了这个,但它看起来真的很讨厌。如果没有更简洁的方法,我将使用多个相同的配置翻译,也许让源代码控制系统正确复制它们。

4

1 回答 1

1

您可以告诉 Entity Framework 使用不同的连接字符串 - 它不必使用 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];
于 2012-10-02T09:57:32.717 回答