2013-07-08 33 views
5

我需要在ASP.NET MVC应用程序中使用多个连接字符串。我怎么能做到这一点?现在,我注册的连接如下:ASP.NET MVC。 Autofac和多个连接字符串

builder.RegisterType<SqlConnection>().WithParameter(
    "connectionString", 
    WebConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString) 
    .InstancePerLifetimeScope() 
    .ExternallyOwned(); 

builder.Register(c => new ContextDataContext(c.Resolve<SqlConnection>())).InstancePerDependency(); 

回答

0

一种方式做到这一点,是创建自己的连接工厂,并与autofac注册。 喜欢的东西:

interface IConnectionFactory{ 
    SqlConnection CreateConnection(string connectionStringName); 
} 
+0

这应该如何帮助使用多个连接字符串?在使用组件之前需要对组件进行自定义初始化时,使用工厂才有意义。即使它有帮助,它也不是核心问题的答案。 (或者我没有看到你打算如何使用它) – kubal5003

+0

@ kubal5003,他的工厂将根据其名称创建一个带有指定连接字符串的连接,以便他的代码可以调用此工厂方法来获得所需的连接。 – alex

-2

您可以定义多个部分的连接字符串在web.config中

<connectionStrings> 

    <add name="ProductConnection" providerName="System.Data.SqlClient" connectionString="_YOUR_CONNECTION_STRING_1_"/> 

    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="_YOUR_CONNECTION_STRING_2_"/> 

</connectionStrings> 

在你的代码可以使用像,

ConfigurationManager.ConnectionStrings["ProductConnection"]来获取连接字符串。

如果您想基于连接字符串获取实例,可以使用任何可以根据连接字符串名称解析实例的工厂。 SimpleFactory + UnitySimpleFactory + Autofac可以帮助你。