Abp vNext是Abp的下一代版本,目前還在經一步完善,代碼已經所有重寫了,好的東西保留了下來,去除了不少笨重的東西,從官宣來看,Abp vNext主要是爲了之後微服務架構而誕生的。web
從源碼來看,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包還未更新。ui
自給自足豐衣足食,本身來吧,其實很是簡單code
先去掉剛引入的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,咱們的建立順利的完成了。get
你覺得結束了嗎,幼稚!默認啓動的時候他仍是會選擇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的好處就在於可以讓你們有一種統一的快速的開發方式。
PS:陪兒子寫字寫了3個小時,寫1個字發呆5分鐘以上,能理解這種痛苦嗎?