Volo.Abp.EntityFrameworkCore.MySQL 使用

打開https://cn.abp.io/Templates,任意選擇一個項目類型,而後建立項目,我這裏建立了一個Web Apimysql

解壓項目,還原Nuget,項目目錄以下:git

首先咱們來查看下整個項目關於數據庫方面的引用:github

從圖中咱們能夠看到IdentityServerHostMKM.BookStore.Host 這兩個站點有引用,IdentityServerHost是用戶中心API,和MKM.BookStore.Host 是咱們的業務中心API,這裏咱們以MKM.BookStore.Host的處理爲例來說解下如何把原有的SqlServer替換爲Mysql。sql

一、在以MKM.BookStore.Host添加Volo.Abp.EntityFrameworkCore.MySQL的引用數據庫

二、修改數據庫Default的鏈接字符串爲Mysql的數據庫鏈接字符串緩存

//SqlServer
    //"Default" "Server=localhost;Database=BookStoreHost;Trusted_Connection=True;MultipleActiveResultSets=true",
    
    //Mysql
    "Default": "SERVER=192.168.2.15; PORT=3306; DATABASE=BookStoreHost; USER=root; PASSWORD=123456;",
    
    // 緩存數據庫
    "SqlServerCache": "Server=localhost;Database=BookStoreCache;Trusted_Connection=True;MultipleActiveResultSets=true"
複製代碼

三、DemoAppModule.csbash

3.1 、替換引用ui

添加Volo.Abp.EntityFrameworkCore.MySQL的引用spa

註釋Volo.Abp.EntityFrameworkCore.SqlServer的引用3d

3.二、替換Module

typeof(AbpEntityFrameworkCoreSqlServerModule)替換爲typeof(AbpEntityFrameworkCoreMySQLModule)

[DependsOn(
        typeof(AbpAutofacModule),
        typeof(BookStoreApplicationModule),
        typeof(BookStoreEntityFrameworkCoreModule),
        typeof(BookStoreHttpApiModule),
        typeof(AbpPermissionManagementEntityFrameworkCoreModule),
        typeof(AbpSettingManagementEntityFrameworkCoreModule),
        typeof(AbpAuditLoggingEntityFrameworkCoreModule),
        //typeof(AbpEntityFrameworkCoreSqlServerModule)
         typeof(AbpEntityFrameworkCoreMySQLModule)
        )]
複製代碼

3.三、 UseSqlServer改成UseMySQL

Configure<AbpDbContextOptions>(options =>
            {
                //options.UseSqlServer();
                options.UseMySQL();
            });
複製代碼

四、DemoAppDbContextFactory.cs

public DemoAppDbContext CreateDbContext(string[] args)
        {
            var configuration = BuildConfiguration();

            //var builder = new DbContextOptionsBuilder<DemoAppDbContext>()
            //    .UseSqlServer(configuration.GetConnectionString("Default"));

            var builder = new DbContextOptionsBuilder<DemoAppDbContext>()
                .UseMySQL(configuration.GetConnectionString("Default"));

            return new DemoAppDbContext(builder.Options);
        }
複製代碼

五、遷移&&生成

5.一、刪除默認遷移文件

刪除Migrations目錄以及文件,由於默認的是SqlServer的,咱們這裏是須要生產Mysql的。

5.二、 生成新的遷移文件

MKM.BookStore.Host設置爲啓動項目,打開程序包管理控制檯而且默認項目選擇爲MKM.BookStore.Host

執行遷移命令 PM> add-migration mysql_init

5.三、更新數據庫

PM> update-database -verbose

github地址: github.com/Jesn/MKM.Bo…

相關文章
相關標籤/搜索