如何对现有数据库使用ABP框架



ABP框架日益流行,我想将其用于现有和新项目。问题是,ABP是为代码优先的方法而设计的。它非常好,但我们如何将它用于现有的数据库?

有一些建议,但它们不适合Sql Server或需要Abp Suite工具。

  • https://community.abp.io/articles/convert-database-first-into-code-first-in-the-abp-framework-8fomzrdk
  • https://github.com/aspnetboilerplate/aspnetboilerplate/issues/6160
  • https://support.aspnetzero.com/QA/Questions/4758/Why-ABP-uses-Code-First-why-not-DB-First

为现有数据库设置一个新的连接字符串。创建新的上下文来使用它。然后根据现有的表生成实体。在这一点上,这就像在任何ABP的其他项目上工作一样。制作Dto、应用程序和服务。Abp的即插即用世界唯一真正的解决方案是它喜欢主栏为Id。考虑到这一点,你可能需要走自定义实体的道路。甚至为原始表的设置构建审计接口。

关于您的问题,有两个基本步骤。

步骤1在EntityframeworkCore层内创建新的DbContext。(您需要为您的第二个DbContext名称配置相关字段(

步骤2在EntityframeworkCoreModule.cs内部,您应该这样配置:

public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAbpDbContext<SecondDbContext>(options =>
{                    
options.AddDefaultRepositories(includeAllEntities: true);
});    
}

最新更新