我有一个名为的数据库 “配置”我有一个名为“客户”的表 在Customer表中,我保存了登录凭据,以及到客户端数据库的连接String。
在我的控制器内部,我正在检查我正在查询的客户数据库
String connectionString = "";
if (id == 1)
connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Client1.mdf;Integrated Security=True;User Instance=True";
else if (id == 2)
connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Client2.mdf;Integrated Security=True;User Instance=True";
using (TestDbaseDataContext db = new TestDbaseDataContext(connectionString))
{
var searchRecords = db.SearchRecords;
return View(searchRecords.ToList());
}
将使用不同数量的客户端使用单独的数据库,这些连接字符串将根据存档状态和其他因素而更改。我不认为在app.config中对这些字符串进行硬编码就能满足我的需求。
我有一个“Master”数据库,它包含所有客户端的配置设置以及客户端的数据库连接字符串。 mater数据库仅用于缓解要搜索的客户端数据库。我将连接字符串存储在master数据库中,以便我可以为登录的客户传递该连接字符串以查询正确的数据库。要求每个客户都在自己的数据库中
如何存储此连接字符串,以便在需要时传递给我的datacontext? 它应该存储在会话变量中,还是应该在每个控制器方法中查询Config数据库Customer表?
答案 0 :(得分:1)
之前我已经设置了类似的“孤立的”多客户端应用程序。这是会话变量的一个很好的例子。每个用户都与客户有关,客户有自己的数据库。登录时,每个用户都应该在Session状态中获得一个“context”对象,其中包含所有必要的标识数据,包括数据库连接字符串。