我没有此主题的任何代码。我有一个"问题"可以访问许多数据库。我写了一个程序,你可以登录并做一些事情(创建报告等)。 Bevore你登录,程序应该在本地数据库中查看用户所属的系统。之后,连接字符串应该更改以获得与此系统的连接。
我需要这个,因为这个报告应用程序在我们的本地服务器上,但是用户的详细数据和用于创建报告的每个数据都在客户服务器上。 一步一步:
我从来没有做过这样的事情,而且我多次读过它不可能在运行时更改constring。所以我想我可以将每个字符串写入web.config并告诉他
If(user.system == 3){ use constring3 };
我真的不知道如何处理这件事。
感谢您的支持。
干杯戴夫
答案 0 :(得分:0)
对于这种情况,常见的方法是使用像Ninject这样的IoC容器。 想法是只有一个连接字符串(可能包含在一个类中),它被注入到你的ViewModels中。
用户登录后,您将向该容器注册此连接字符串的正确实例。
阅读Tutorial以了解其工作原理。
答案 1 :(得分:0)
所以我遇到了一个新问题。我在配置文件中存储了所有可能的constring,我创建了一个类,我从中请求所需的字符串。
if (usersystem == 1)
string db = ConfigurationManager.ConnectionStrings["DB1"].ConnectionString;
return db;
一切正常。因此,每当我打开一个新的var contex = new Entities()
连接时,我都会给他一些像var context = new Entities(constring)
这样的信息。一切都很好,但是当我开始登录时,它会跳回旧的constring。我一步一步调试,代码永远不会改变constring,上下文仍然显示新的,但它隐藏着旧的隐藏。这是我的新问题,但我只是一步之遥来解决它。