带有DbContext池和多租户的EF Core-每个租户的数据库

马克拉

我需要解决实体框架核心中的多租户问题。每个租户都有自己的数据库(由于历史原因,无法更改)。

我将在很多地方使用建议的上下文工厂(示例1示例2示例3)。

我的问题是:

  • 我可以通过这种方法使用上下文池吗
  • 我可以使用IMutableEntityType.QueryFilter设置在OnModelCreating

如果DbContext是从池中返回的,我担心它将链接到旧的连接字符串,而不是新的(如果请求是从其他租户启动的,则创建上下文)。

我想我可以解决这样的迁移(从第二点开始):

foreach (var tenant in allTenants)
{
    var context = dbContextFactory.CreateDbContext(tenant, configuration);
    context.Database.Migrate();
}

除了我的两个问题。在开始编码之前,我还应该考虑什么吗?

埃里克·埃杰

是的,您可以使用查询过滤器

不,您不能使用DbContext池

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有ASP.NET Core 3.0和EF Core的多租户应用程序

多租户:每个租户一个数据库有什么好处?

如何使用EF Core处理跨租户数据库的共享查找表?

带有MongoDB的Django多数据库多租户

如何为EF Core中的DbContext中的每个查询添加参数,以保护租户数据?

使用Spring Data ArangoDB的多租户,每个客户有一个单独的数据库

如何在支持多租户(每个租户数据库)的Spring Boot应用程序中使用固定数据库

具有多个数据库的Grails多租户

如何在laravel中建立一个多租户数据库,其中每个租户都有多个用户?

租户ID过滤器,其中单个数据库中有多租户

如何实现多租户Spring Boot应用程序(每个用户都有自己的数据库)

每个租户的数据库 - 一步一步的例子来证实我的想法

具有Spring Boot和Hibernate的多租户和中央数据库

具有DbContext和TenantId的多租户-拦截器,过滤器,EF代码优先

Autofac多租户数据库配置

AWS Neptune数据库中的多租户

多租户SQL Server数据库中的复合主键

维护多租户共享方案数据库

使用Spring MVC和Hibernate在多租户数据库应用程序中动态添加租户

带有EF Core和内存数据库提供程序的原始SQL

ASP.NET MVC 5 + EF6 + Ninject-多租户数据库

相同的 DbContext,使用 EF Core 的多个数据库

从 DBContext EF Core 创建 SQL 数据库

EF 6 Core - 多对多关系数据库优先(EF Core Power Tools/scaffold-dbcontext)

在PostgreSQL中使用架构的休眠和多租户数据库

Azure AD 多租户、.Net Core Web API 和 MSAL(Microsoft 身份验证库)

Laravel Hyn多租户路由在所有数据库中搜索价值

带有代码优先EF6的多租户

EF Core MySQL数据库优先?