Volo.Abp.EntityFrameworkCore.MySQL 使用


  • 創建新項目

打開 https://cn.abp.io/Templates ,任意選擇一個項目類型,然后創建項目,我這里創建了一個Web Api

 

 

解壓項目,還原Nuget,項目目錄如下:

 

 

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

 

 

從圖中我們可以看到IdentityServerHostMKM.BookStore.Host 這兩個站點有引用,IdentityServerHost是用戶中心API,和MKM.BookStore.Host 是我們的業務中心API,這里我們以MKM.BookStore.Host的處理為例來講解下如何把原有的SqlServer替換為Mysql。

1、在以MKM.BookStore.Host添加Volo.Abp.EntityFrameworkCore.MySQL的引用

2、修改數據庫Default的連接字符串為Mysql的數據庫連接字符串

1     //SqlServer
2     //"Default" "Server=localhost;Database=BookStoreHost;Trusted_Connection=True;MultipleActiveResultSets=true",
3     
4     //Mysql
5     "Default": "SERVER=192.168.2.15; PORT=3306; DATABASE=BookStoreHost; USER=root; PASSWORD=123456;",
6     
7     // 緩存數據庫
8     "SqlServerCache": "Server=localhost;Database=BookStoreCache;Trusted_Connection=True;MultipleActiveResultSets=true"

 

3、DemoAppModule.cs

3.1 、替換引用

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

注釋Volo.Abp.EntityFrameworkCore.SqlServer的引用

3.2、替換Module

 1 typeof(AbpEntityFrameworkCoreSqlServerModule)替換為typeof(AbpEntityFrameworkCoreMySQLModule)
 2 
 3     [DependsOn(
 4         typeof(AbpAutofacModule),
 5         typeof(BookStoreApplicationModule),
 6         typeof(BookStoreEntityFrameworkCoreModule),
 7         typeof(BookStoreHttpApiModule),
 8         typeof(AbpPermissionManagementEntityFrameworkCoreModule),
 9         typeof(AbpSettingManagementEntityFrameworkCoreModule),
10         typeof(AbpAuditLoggingEntityFrameworkCoreModule),
11         //typeof(AbpEntityFrameworkCoreSqlServerModule)
12          typeof(AbpEntityFrameworkCoreMySQLModule)
13         )]

 

3.3、 UseSqlServer改為UseMySQL

1  Configure<AbpDbContextOptions>(options =>
2             {
3                 //options.UseSqlServer();
4                 options.UseMySQL();
5             });

 

4、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、遷移&&生成

5.1、刪除默認遷移文件

刪除Migrations目錄以及文件,因為默認的是SqlServer的,我們這里是需要生產Mysql的。

5.2、 生成新的遷移文件

MKM.BookStore.Host設置為啟動項目,打開程序包管理控制台並且默認項目選擇為MKM.BookStore.Host

執行遷移命令 

PM> add-migration mysql_init

 

 

5.3、更新數據庫

PM> update-database -verbose

 

5.4、關閉 TodosController 的 Authorize,運行 MKM.BookStore.Host

    [RemoteService]
    [Area("BookStore")]
    [Route("api/BookStore/todos")]
    //[Authorize]
    public class TodosController : AbpController
    {
        private readonly ITodoAppService _todoAppService;

        public TodosController(ITodoAppService todoAppService)
        {
            _todoAppService = todoAppService;
        }

        [HttpGet]
        [Route("")]
        public Task<PagedResultDto<TodoDto>> GetListAsync()
        {
            return _todoAppService.GetListAsync();
        }
    }
}

  

 

 

github 地址:https://github.com/Jesn/MKM.BookStore.git


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM