【发布时间】:2015-09-30 19:45:57
【问题描述】:
我正在开发一个 Web 应用程序,该应用程序具有多个具有相同架构的数据库。根据登录用户的不同,执行查询的数据库可能会有所不同。
我计划为每个数据库设置连接字符串,并且在存储库级别执行查询时,在创建数据库上下文时更改连接字符串。
我的问题是我尝试在执行 linq 查询之前将连接字符串名称动态传递给 DB 上下文,但失败了。
如果有人可以帮助我做到这一点,并让我知道这种方法的任何利弊,我将不胜感激。
【问题讨论】:
-
请出示您的代码并解释实际发生的情况。你描述的应该有效。并且不要问“任何优点和缺点”,这会使这个问题过于宽泛。
-
DbContext-constructor 有一个接受连接字符串的参数。你为什么不用那个?在创建DbContext的实例之前,您需要执行您的逻辑,根据登录的用户获取正确的连接字符串.. -
@PzYon 如果您阅读了这个问题,那似乎正是 OP 正在做的事情,至少我猜这就是 “将连接字符串名称动态传递给数据库上下文”的意思.
-
@CodeCaster jep,可以。但也可能是它们试图更改现有实例的连接字符串。也许我们需要更多信息甚至更好的代码示例?
-
@Thanushka 这样的架构可以用于多租户应用程序中,每个租户都有单独的数据库。
标签: c# entity-framework