ASP.NET Boilerplate多个数据库和DbContext

时间:2018-08-02 09:51:04

标签: c# asp.net-core entity-framework-core dbcontext aspnetboilerplate

我想使用ASP.NET Boilerplate一次连接到两个数据库。我遵循以下示例:https://github.com/aspnetboilerplate/aspnetboilerplate-samples/tree/master/MultipleDbContextEfCoreDemo

问题在于,只有第一个上下文将具有所有Abp表。第二个上下文是现有数据库,上面没有任何Abp表。

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

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

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

更新

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

我已经测试了从模板生成的仅API的项目,并且在这里可以完美地工作。但是当在生成项目时将API和前端结合在一起时,我遇到了这些问题,需要在其他上下文中查找Abp *表。

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

1 个答案:

答案 0 :(得分:3)

// using Abp.Zero.EntityFrameworkCore;

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

Abp.Zero.EntityFrameworkCore的{​​{3}}定义了模块零表的DbSet

  

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

     

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

对于第二种上下文,子类Abp.EntityFrameworkCore的{​​{3}}。