ASP.NET Boilerplate多个数据库和DbContexts

问题描述 投票:2回答:1

我想使用ASP.NET Boilerplate一次连接到两个数据库。我按照这个例子:https://github.com/aspnetboilerplate/aspnetboilerplate-samples/tree/master/MultipleDbContextEfCoreDemo

问题是只有第一个上下文会包含所有的Abp表。第二个上下文是现有数据库,其上没有任何Abp表。

当我启动网络应用程序时,我得到了这个:

System.Data.SqlClient.SqlException: 'Invalid object name 'AbpLanguages'.'

显然它正在寻找第二个上下文中的Abp *表,但它们不存在(并且它们不应该存在)。那么,拥有多个上下文的正确方法是什么,以便它不会在第二个上下文中查找Abp *表?

Update

我通过修改从模板生成的干净的ASP.NET Boilerplate项目创建了一个示例应用程序。

我已经使用从API模板生成的项目进行了测试,该项目仅使用API​​,并且完美运行。但是当在生成项目时组合API和前端时,我遇到了在其他上下文中查找Abp *表的问题。

Dropbox:https://www.dropbox.com/s/19gj8ms0jwz500k/4.0.1.zip?dl=0 Github:https://github.com/FrikkinLazer/MultipleContext.git

c# asp.net-core entity-framework-core dbcontext aspnetboilerplate
1个回答
3
投票
// using Abp.Zero.EntityFrameworkCore;

public partial class TEST1Context : AbpZeroDbContext<Tenant, Role, User, TEST1Context>
{
    // ...
}

Abp.Zero.EntityFrameworkCoreAbpZeroDbContext定义了模块零表的DbSets。

第二个上下文是现有数据库,其上没有任何Abp表。

那么,拥有多个上下文的正确方法是什么,以便它不会在第二个上下文中查找Abp *表?

对于第二个上下文,子类Abp.EntityFrameworkCoreAbpDbContext

© www.soinside.com 2019 - 2024. All rights reserved.