【发布时间】:2013-08-07 03:48:02
【问题描述】:
我在搜索/查找此场景的示例时遇到了心理障碍。
User-A 登录并连接到“abcServer”上的“master”数据库以验证帐户。 一旦获得批准,服务器将“unique-A”数据库的连接字符串返回给“abcServer”上的用户A。
我知道 EF 中的 dbContext 具有分配 connString 名称的构造函数,但我希望这是动态的:
(1) DbContext
// dbContext constructor
public MasterDatabase() : base("name=MasterDatabase")
{
Configuration.LazyLoadingEnabled = false;
}
(2)默认连接是
// web.config
<connectionStrings>
<add name="MasterDatabase" connectionString="Data Source=abcServer;Initial
Catalog=Master;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
但是,这就是 connStr 的硬编码。项目的其余部分是关于在他/她的数据库中使用 EF 类的各个用户,直到从成功登录返回连接字符串才能确定。像这样的:
(3)控制器改变conn字符串的方法
// in api controller, once log in successful, call to method return value as parameter
private void Connect2DbwithThisUsersConnString(string connStr)
{
// change the conn string & USE THIS CONTEXT to this user's db
}
这方面的任何 asp.net/mvc 示例?提前致谢。在这里发疯。
记住:在登录之前我不知道连接字符串。这可能是一个新用户,需要动态创建一个新数据库并传递 connStr。我无法硬编码唯一的 dbContext “base”或 conn 字符串。
非常感谢您的关注!
【问题讨论】:
标签: sql-server asp.net-mvc entity-framework