Abp vNext 使用Mysql数据库

Posted HUGO.CM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Abp vNext 使用Mysql数据库相关的知识,希望对你有一定的参考价值。

1.项目 EntityFrameworkCore 添加引用 Volo.Abp.EntityFrameworkCore.mysql

2.在 EntityFrameworkCoreModule.cs 中代码 typeof(AbpEntityFrameworkCoreSqlServerModule) 修改为 typeof(AbpEntityFrameworkCoreMySQLModule) 。

[DependsOn(
        typeof(MyProjectDomainModule),
        typeof(AbpIdentityEntityFrameworkCoreModule),
        typeof(AbpIdentityServerEntityFrameworkCoreModule),
        typeof(AbpPermissionManagementEntityFrameworkCoreModule),
        typeof(AbpSettingManagementEntityFrameworkCoreModule),
        typeof(AbpEntityFrameworkCoreMySQLModule),
        typeof(AbpBackgroundJobsEntityFrameworkCoreModule),
        typeof(AbpAuditLoggingEntityFrameworkCoreModule),
        typeof(AbpTenantManagementEntityFrameworkCoreModule),
        typeof(AbpFeatureManagementEntityFrameworkCoreModule)
        )]

 

3.在 EntityFrameworkCoreModule.cs 中 修改 options.UseSqlServer() 为 options.UseMySQL()。

public override void ConfigureServices(ServiceConfigurationContext context)
{
    context.Services.AddAbpDbContext<MyProjectDbContext>(options =>
    {
        /* Remove "includeAllEntities: true" to create
         * default repositories only for aggregate roots */
        options.AddDefaultRepositories(includeAllEntities: true);
    });

    Configure<AbpDbContextOptions>(options =>
    {
        /* The main point to change your DBMS.
         * See also MyProjectMigrationsDbContextFactory for EF Core tooling. */
        options.UseMySQL();
    });
}

 

4.在 DbContextModelCreatingExtensions.cs 中 ConfigureMyProject 方法 添加 builder.UseMySQL();  代码。 

public static void ConfigureMyProject(this ModelBuilder builder)
{
    Check.NotNull(builder, nameof(builder));

    /* Configure your own tables/entities inside here */

    //builder.Entity<YourEntity>(b =>
    //{
    //    b.ToTable(MyProjectConsts.DbTablePrefix + "YourEntities", MyProjectConsts.DbSchema);

    //    //...
    //});

    builder.UseMySQL();
}

5. 项目 EntityFrameworkCore.DbMigrations 中 MigrationsDbContextFactory.cs  修改 .UseSqlServer 为 .UseMySQL。

public MyProjectMigrationsDbContext CreateDbContext(string[] args)
{
    MyProjectEfCoreEntityExtensionMappings.Configure();

    var configuration = BuildConfiguration();

    var builder = new DbContextOptionsBuilder<MyProjectMigrationsDbContext>()
        .UseMySql(configuration.GetConnectionString("Default"));

    return new MyProjectMigrationsDbContext(builder.Options);
}

 

UseMySql

以上是关于Abp vNext 使用Mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

Abp vNext抽茧剥丝01 使用using临时更改当前租户

ABP Vnext 批量导入用户,解决密码加密问题

Abp vnext 使用sql2005sql2008等脚本报错解决

[Abp vNext 源码分析] - 19. 多租户

[Abp vNext 源码分析] - 19. 多租户

ABP vNext报错:An unhandled exception occurred while processing the request.求大佬解惑??