2012-05-15 28 views
1

我已经继承了ASP.NET MVC3 + NInject应用程序,我的任务是在SQL Server级别实现虚拟专用数据库。为了使其工作,用于连接到SQL的证书需要根据用户进行更改。将会话信息传递到存储库层

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

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

+1

打我。您的问题含糊不清,不包含任何显示您现有代码的代码,并且没有充分说明您需要什么。所以......祝你好运。 –

+0

不能在控制器级别注入所需的数据库,假设存储库由接口驱动?听起来像这是什么设计是为了处理,除非我错过了一个细节,您的简短描述不会透露 –

+0

找到一种可能的方式来做到这一点在过去的职位:http://stackoverflow.com/questions/7024952/ninject-动态指定-A-连接字符串基于-上一个子域 – dehart

回答

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