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);
});
}