我继承了一个ASP.NET MVC3 + NInject应用程序,我的任务是在SQL Server级别实现虚拟专用数据库。为了使其工作,用于连接到SQL的凭据需要根据用户进行更改。
如何将特定于会话的信息传递到存储库实现层?我宁愿不为每个服务和存储库调用添加参数。
目前,在创建存储库对象时,将从web.config条目设置连接字符串。
答案 0 :(得分:0)
阅读本文后: Ninject - dynamically specifying a connection string based on a sub domain
我在基础存储库对象的构造函数中添加了一个参数:
public DataObject( string connectionString)
并在绑定代码中使用Ninject方法 WithConstructorArgument(),如下所示:
k.Bind<Repository.Interface.Admin>().To<Repository.LinqToSql.Admin>().WithConstructorArgument("connectionString", context => GetConnString());