Entity framework 实体框架-基于子域的集合数据库
我正在寻找使用实体框架基于子域设置数据库的最佳方法Entity framework 实体框架-基于子域的集合数据库,entity-framework,asp.net-mvc-5,multi-tenant,Entity Framework,Asp.net Mvc 5,Multi Tenant,我正在寻找使用实体框架基于子域设置数据库的最佳方法 使用默认EF进程连接到主数据库 读取当前请求的子域 访问主数据库读取子域的连接字符串 设置EF上下文以使用子域的DB 所有EF连接现在都应该使用子域 我对主数据库上的迁移不感兴趣,但我希望它在子域上工作 这是到目前为止我发现的最好的方法,但我想知道是否有一种更为简化的方法:您必须执行以下步骤 创建一个总是查找元数据以获取上下文连接字符串的连接解析器 在db上下文中,必须将(1)中获得的连接字符串作为实体连接传递 这样,您就始终拥有基于域的连接字
这是到目前为止我发现的最好的方法,但我想知道是否有一种更为简化的方法:您必须执行以下步骤
HTH我最后做了以下工作,它可以用于迁移和所有操作:
- 创建主数据库上下文、配置和迁移
- 创建子域数据库上下文、配置和迁移
- 在应用程序启动时,迁移并初始化主数据库
- 循环主数据库中的每个子域并调用migrate 并初始化
- 在应用程序上,获取当前子域并设置 具有子域名的上下文项
- 现在是主要部分:在子域数据库上下文中,初始化 构造函数,其方法将从中获取连接字符串 基于上下文中设置的子域名的主数据库 项目
为了将依赖项注入存储库,可以设置要传递的正确上下文,这样它就知道是使用主上下文还是子域上下文。您使用ASP.NET还是MVC?在哪里可以找到解决方案?@DawoodAwan还没有-我正在尝试使用2 DB上下文,并从第二个上下文访问主上下文。完成时/如果完成,我将更新。@DawoodAwan-请阅读下面的答案,谢谢,您在应用程序\u beginrequest中使用redis缓存存储范围子域?