Jam*_*mil 5 c# entity-framework-core asp.net-core
我发现了许多类似的问题,并发布了如何进行的方法,但是我不确定哪种方法更好。我认为我需要一些DbContextFactory类,该类将根据TenantId返回上下文,但是我不知道如何使用OnModelCreating实现此目的。我主要看到有关每租户数据库体系结构的文章,但不确定是否知道如何将架构绑定到上下文(通过用户?)。我试图遵循此 https://romiller.com/2011/05/23/ef-4-1-multi-tenant-with-code-first/, 但看起来这不适用于最新的EF版本。我还使用代码优先 EF6 检查了此 多租户,但IDbModelCacheKeyProvider更改了,现在在Create中需要DbContext,这与我想要做的相反。能否请您举一个例子说明如何完成?
使用此代码在您的上下文中设置默认架构:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("blogging");
}
Run Code Online (Sandbox Code Playgroud)
使用相同的连接字符串创建另一个上下文,然后执行以下操作:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("mydifferentschemaname");
}
Run Code Online (Sandbox Code Playgroud)
这应该可以实现你想要的。
这里有更多信息。
您还可以将表(实体)映射到模式,例如:
modelBuilder.Entity<Department>().ToTable("t_Department", "school");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
343 次 |
| 最近记录: |