将会话信息传递到存储库层

时间:2012-05-15 20:13:04

标签: .net asp.net-mvc-3 ninject

我继承了一个ASP.NET MVC3 + NInject应用程序,我的任务是在SQL Server级别实现虚拟专用数据库。为了使其工作,用于连接到SQL的凭据需要根据用户进行更改。

如何将特定于会话的信息传递到存储库实现层?我宁愿不为每个服务和存储库调用添加参数。

目前,在创建存储库对象时,将从web.config条目设置连接字符串。

1 个答案:

答案 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());