開啟https://cn.abp.io/Templates
,任意選擇一個專案型別,然後建立專案,我這裡建立了一個Web Api
解壓專案,還原Nuget,專案目錄如下:
首先我們來檢視下整個專案關於資料庫方面的引用:
從圖中我們可以看到IdentityServerHost
和MKM.BookStore.Host
這兩個站點有引用,IdentityServerHost
是使用者中心API,和MKM.BookStore.Host
是我們的業務中心API,這裡我們以MKM.BookStore.Host
的處理為例來講解下如何把原有的SqlServer替換為Mysql。
1、在以MKM.BookStore.Host
新增Volo.Abp.EntityFrameworkCore.MySQL
的引用
2、修改資料庫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"
複製程式碼
3、DemoAppModule.cs
3.1 、替換引用
新增Volo.Abp.EntityFrameworkCore.MySQL
的引用
註釋Volo.Abp.EntityFrameworkCore.SqlServer
的引用
3.2、替換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.3、 UseSqlServer
改為UseMySQL
Configure<AbpDbContextOptions>(options =>
{
//options.UseSqlServer();
options.UseMySQL();
});
複製程式碼
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
github地址: github.com/Jesn/MKM.Bo…