在我们公司中,我们有一个针对1个数据库的应用程序。现在,我被告知要为每个客户公司使用单独的数据库使其成为多租户。因此,我创建了一个新数据库,用于存储所有用户并存储他们的公司名称,该名称将用于更改数据库。我要做什么:1.用户登录2.后端检查用户的公司名称3.检索到的公司名称将分配给dbcontext:base,它将使用公司名称切换数据库当然,我在stackoverflow和其他地方浏览了与此相关的其他问题,其中大多数人将其作为解决方案: public FacilityEntities() : base("name=Demo") { } public FacilityEntities(string dbConnection) : base(dbConnection) { }大多数人说这可行。但这对我不起作用。另外,尽管不建议这样做,但我也尝试在运行时更改web.config文件,但每次用户登录时,应用程序都会刷新,无法通过登录过程。如何设置更改后的数据库而不必使用using(){}?如何让登录的用户一直在使用该数据库?每次对数据库执行操作时,是否都必须调用此新数据库吗?有什么方法可以将此已登录用户将此更改后的数据库设置为“主数据库”?
3 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
对于此问题,我只需将新实体的第二个连接字符串添加到您的web.config中
<connectionStrings>
<add name="DefaultConnection" .../>
<add name="DefaultConnection2" .../>
</connectionStrings
DIEA
TA贡献1820条经验 获得超2个赞
您的dbcontext类具有2个构造函数。1个默认值和一个参数化的值。您需要调用参数化版本
return dbContext ?? (dbContext = new FacilityEntities());
尝试将其更改为
return dbContext ?? (dbContext = new FacilityEntities("New Connection String"));
无论哪种情况,都必须修改连接代码。
- 3 回答
- 0 关注
- 255 浏览
添加回答
举报
0/150
提交
取消