Abp vNext 切换MySql数据库
Abp vNext是Abp的下一代版本,目前還在經一步完善,代碼已經全部重寫了,好的東西保留了下來,去除了很多笨重的東西,從官宣來看,Abp vNext主要是為了以后微服務架構而誕生的。
從源碼來看,Abp vNext已經支持了多種數據庫,Sql Server,MySql,PostgreSql等。默認情況下,你創建的項目使用的是Sql Server版本,如果需要切換到MySql的話,僅需要:
第一步,在你的EntityFrameworkCore(Abp的EF框架模塊,用來創建DbContext,數據遷移用的)中,從NuGet中安裝Volo.Abp.EntifyFrameworkCore.MySql
第二步,打開TGDbContextFactory.cs
第三部,修改代碼:
public TGDbContext CreateDbContext(string[] args){
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<TGDbContext>()
.UseSqlServer(configuration.GetConnectionString("Default"));
return new TGDbContext(builder.Options);
}
改成
public TGDbContext CreateDbContext(string[] args){
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<TGDbContext>()
.UseMySQL(configuration.GetConnectionString("Default"));
return new TGDbContext(builder.Options);
}
原本以為這樣就能ok的,update-database的時候一堆錯誤,去issue上看了下,都有這個問題,有人建議用Pomele的MySql驅動,還提了PR,當我今天(3月9號)去看的時候PR已經通過,但Nuget包還未更新。
自給自足豐衣足食,自己來吧,其實非常簡單
先去掉剛引入的Volo.Abp.EntityFrameworkCore.MySql,然后引入Pomelo.EntityFrameworkCore.MySql,隨后上述代碼改為:
public TGDbContext CreateDbContext(string[] args){
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<TGDbContext>()
.UseMySql(configuration.GetConnectionString("Default"));
return new TGDbContext(builder.Options);
}
ok,簡單改造完成,我們再來update-database,我們的創建順利的完成了。
你以為結束了嗎,幼稚!默認啟動的時候他還是會選擇Sql Server,我們看下代碼,在Web項目下的xxWebModule.cs,xx是你的項目名,這個是我們web的Module文件,我們知道Abp是一個Module加載的框架。在這個項目中同樣引入Pomelo.EntityFrameworkCore.MySql,隨后修改ConfigureDatabaseServices方法,
private void ConfigureDatabaseServices(){
Configure<AbpDbContextOptions>(options =>
{
options.Configure(context =>
{
if (context.ExistingConnection != null)
{
context.DbContextOptions.UseMySql(context.ExistingConnection);
}
else
{
context.DbContextOptions.UseMySql(context.ConnectionString);
}
});
});
}
改完以上的代碼,你就可以順利啟動Abp vNext for MySql了。
改的不是很優雅,畢竟下一個版本應該會解決這個問題。之前用Abp Core做了小程序并放到了生產環境,啟動慢了點,但是運行什么都比較穩定,開發也比較便捷,看了Abp vNext后,感覺一種小清新,相信在不久之后,我會使用它放到生產環境。其實一些老鳥的話,自己都有自己的框架,說實在的,Abp的好處就在于能夠讓大家有一種統一的快速的開發方式。
相關文章:
[譯]ABP vNext介紹
ABP VNext 微服務演示,項目狀態和路線圖
用abp vNext快速開發Quartz.NET定時任務管理界面
原文地址:https://www.cnblogs.com/inday/p/abp-vNext-for-Mysql.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的Abp vNext 切换MySql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国.NET:东莞+长沙.NET俱乐部现
- 下一篇: Named Volume 在 MySQL