Abp vNext 切换MySql数据库
Abp vNext是Abp的下一代版本,目前還在經(jīng)一步完善,代碼已經(jīng)全部重寫了,好的東西保留了下來,去除了很多笨重的東西,從官宣來看,Abp vNext主要是為了以后微服務(wù)架構(gòu)而誕生的。
從源碼來看,Abp vNext已經(jīng)支持了多種數(shù)據(jù)庫,Sql Server,MySql,PostgreSql等。默認(rèn)情況下,你創(chuàng)建的項(xiàng)目使用的是Sql Server版本,如果需要切換到MySql的話,僅需要:
第一步,在你的EntityFrameworkCore(Abp的EF框架模塊,用來創(chuàng)建DbContext,數(shù)據(jù)遷移用的)中,從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驅(qū)動,還提了PR,當(dāng)我今天(3月9號)去看的時候PR已經(jīng)通過,但Nuget包還未更新。
自給自足豐衣足食,自己來吧,其實(shí)非常簡單
先去掉剛引入的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,我們的創(chuàng)建順利的完成了。
你以為結(jié)束了嗎,幼稚!默認(rèn)啟動的時候他還是會選擇Sql Server,我們看下代碼,在Web項(xiàng)目下的xxWebModule.cs,xx是你的項(xiàng)目名,這個是我們web的Module文件,我們知道Abp是一個Module加載的框架。在這個項(xiàng)目中同樣引入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了。
改的不是很優(yōu)雅,畢竟下一個版本應(yīng)該會解決這個問題。之前用Abp Core做了小程序并放到了生產(chǎn)環(huán)境,啟動慢了點(diǎn),但是運(yùn)行什么都比較穩(wěn)定,開發(fā)也比較便捷,看了Abp vNext后,感覺一種小清新,相信在不久之后,我會使用它放到生產(chǎn)環(huán)境。其實(shí)一些老鳥的話,自己都有自己的框架,說實(shí)在的,Abp的好處就在于能夠讓大家有一種統(tǒng)一的快速的開發(fā)方式。
相關(guān)文章:
[譯]ABP vNext介紹
ABP VNext 微服務(wù)演示,項(xiàng)目狀態(tài)和路線圖
用abp vNext快速開發(fā)Quartz.NET定時任務(wù)管理界面
原文地址:https://www.cnblogs.com/inday/p/abp-vNext-for-Mysql.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的Abp vNext 切换MySql数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国.NET:东莞+长沙.NET俱乐部现
- 下一篇: Named Volume 在 MySQL