实体框架中的共享连接字符串

时间:2012-06-21 18:18:19

标签: c# asp.net-mvc entity-framework-4

我想在我的Web.config中创建一个connectionString,然后在所有模块声明的“provider connection string”属性中重用它。

示例: 以这种方式声明连接字符串:

<add name="MyConnectionString" connectionString="Data Source=.;Initial
Catalog=MyDB;User ID=username;Password=pwd;" />

然后在模块之间共享此连接:

<add name="Module1Context" connectionString="metadata=res//*/Module1.csdl| ... | 
...;provider=System.Data.SqlClient;provider connection string=MyConnectionString" 
providerName="System.Data.EntityClient" />

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用ConfigurationManager.ConnectionStrings在运行时管理连接字符串 http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings.aspx

答案 1 :(得分:0)

上述方式不可能直接实现。

对此的解决方案几乎肯定会比仅仅复制连接字符串,评论或取消注释条目更多的工作。

请确保您使用Configuration Transformation文件来管理此内容。

如果你真的必须这样做,那么你需要自己构建连接字符串,使用EntityConnectionStringBuilder类,从MyConnectionString值中提取提供者连接字符串。在实例化它时,在上下文对象中设置EntityConnection属性;有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/bb896325.aspx