【发布时间】:2020-08-05 16:52:49
【问题描述】:
我正在编写一个 MVC C# 应用程序。我使用 dapper 作为轻量级 ORM。我的连接字符串是用服务器和初始目录定义的,目前如果我需要访问不同的数据库,我定义另一个连接字符串,并使用 Ninject 绑定来使用基于我正在注入的管理器的特定连接字符串,就像这样:
public class NinjectBindings : NinjectModule
{
public override void Load()
{
Bind<IDbConnection>().To<SqlConnection>()
.WhenInjectedInto<DashboardManager>()
.InRequestScope()
.Named("myDashboard")
.WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["dbDashboard"].ConnectionString);
Bind<IDbConnection>().To<SqlConnection>()
.WhenInjectedInto<ScoreboardManager>()
.InRequestScope()
.Named("myScoreboard")
.WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["dbScoreboard"].ConnectionString);
}
}
不幸的是,如果我在同一个管理器中有代码需要调用与最初指定的目录不同的数据库中的存储过程,这将不起作用。
问题是:我可以只定义一个连接字符串,丢失上面所有的 ninject 绑定内容,然后简单地将初始目录更改为指向不同数据库的点吗?
【问题讨论】:
标签: c# asp.net-mvc-4 connection-string dapper ninject.web.mvc