gpt4 book ai didi

c# - 具有多个数据库和泛型的 Entity Framework Multi-Tenancy 架构

转载 作者:搜寻专家 更新时间:2023-10-30 23:40:10 25 4
gpt4 key购买 nike

我需要构建一个 Multi-Tenancy 应用程序。每个公司的代码是完全共享的,但每个公司都有自己的数据库。

每家公司都通过 Web API 访问应用程序并传递他们自己的“API key ”。此键用于在主数据库的“GlobalCompanies”表中“查找”公司特定的配置详细信息,该表包含公司特定的详细信息,包括数据库详细信息和完整的连接字符串。

我的目标是建立一个新客户,只需运行一些脚本来创建一个新数据库并使用新数据库详细信息更新此“GlobalCompanies”表,一切都会正常进行!

因此,web.config 文件中没有配置信息,可能除了包含配置详细信息的 master 数据库。

因此流程将是:

  1. 浏览器调用 Web API 方法并传递 API key
  2. 应用程序使用 API key 并确定正在使用哪个数据库
  3. 应用程序使用通用代码,但将数据库操作应用于公司特定的数据库。

我找到了这篇文章 Repository Pattern with Entity Framework 4.1 and Code First这让我深入了解了存储库模式的泛型,但我不确定我将如何动态创建和利用不同的 DBContext? (即使那是正确的方法)?

我之前使用不同的连接字符串在 ADO.net 中完成过此操作,但理想情况下我想利用 Entity Framework 和泛型。

有人可以指出我正确的方向吗?我找不到此架构的任何具体示例。

最佳答案

EF 与您对 ADO.Net 所做的相同。您只需将不同的连接字符串传递给上下文的构造函数。 (没有参数的默认构造函数将从配置文件中获取连接字符串。)上下文不会关心连接字符串来自何处 - 配置文件、主数据库、由调用代码构建 - 它只会使用它。

当然,如果连接字符串格式错误,或者指向一个不包含预期表的数据库,则会出现问题。但我相信您会预料到这一点。

关于c# - 具有多个数据库和泛型的 Entity Framework Multi-Tenancy 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com