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