为了账号安全,请及时绑定邮箱和手机立即绑定

如何在ASP.NET MVC中动态更改连接字符串

如何在ASP.NET MVC中动态更改连接字符串

C#
守着星空守着你 2021-03-29 17:14:39
在我们公司中,我们有一个针对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


查看完整回答
反对 回复 2021-04-10
?
DIEA

TA贡献1820条经验 获得超2个赞

您的dbcontext类具有2个构造函数。1个默认值和一个参数化的值。您需要调用参数化版本

return dbContext ?? (dbContext = new FacilityEntities());

尝试将其更改为

return dbContext ?? (dbContext = new FacilityEntities("New Connection String"));

无论哪种情况,都必须修改连接代码。


查看完整回答
反对 回复 2021-04-10
  • 3 回答
  • 0 关注
  • 235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信