ABP入門系列(21) 切換MySQL資料庫

2022-01-09 22:36:00 字數 2238 閱讀 8625

abp入門系列目錄——學習abp框架之實操演練

原始碼路徑:github-learningmpaabp

abp支援mysql已經不是什麼新鮮事了,但按照官方文件:entity framework - mysql integration來,你未必能成功切換,本文就記錄下切換mysql資料庫遇到的一些坑,供後人乘涼!

mysql資料庫好啊,開源免費,不再像sqlserver那樣累贅。而且結合.net core,他倆賊般配的說!但mysql自從賣給oracle後,好像就不怎麼好玩了,安裝起來還是挺費勁的說。一怒之下,轉投mariadb。

mariadb由mysql之父michael widenius主導開發的,他早前曾以10億美元的**,將自己建立的公司mysql ab賣給了sun,此後,隨著sun被甲骨文收購,mysql的所有權也落入oracle的手中。mariadb名稱來自michael widenius的女兒maria的名字。mariadb是目前最受關注的mysql資料庫衍生版,也被視為開源資料庫mysql的替代品。

本文還是基於我之前的learningmpaabpdemo進行演示。

solution-->右鍵-->'manage nuget packages for solution...',安裝mysql.data.entity到以」.web"和「.entityframework」結尾的專案中去,如下圖:

注意版本號,安裝最新,我可不保證可以成功!

修改「.entityframework」結尾的專案migrations資料夾下的configuration.cs類,在建構函式中新增setsqlgenerator("mysql.data.mysqlclient", new mysql.data.entity.mysqlmigrationsqlgenerator());。如下所示:

修改web.config,新增連線字串:

之前的連線字串就注釋掉吧!

如果你的migrations資料夾下有很多以日期開頭(比如:20171122022_)的遷移檔案,全部刪掉他們!

然後tools-->nuget package manage--> package manage console:輸入add-migration "abp_moveto_mysql"執行:

是的,你可能執行不成功,會遇到第乙個坑:

type is not resolved for member 'mysql.data.mysqlclient.mysqlexception,mysql.data, version=6.9.10.0, culture=neutral, publickeytoken=c5687fc88969c44d'.

安裝後,重新執行以上命令即可。

執行命令update-database -verbose,這個時候你會遇到第二個坑:

index column size too large. the maximum column size is 767 bytes.

entity framework with mysql and migrations failing because 「max key length is 767 bytes」

entity framework 6 support

這邊有個簡單的做法,只需修改dbcontext類上新增[dbconfigurationtype(typeof(mysqlefconfiguration))]宣告即可。如下:

重新執行遷移命令,即可!

好久沒更新了,現在重拾abp,後續會結合abp+.net core+mysql,帶給大家高階分享,盡情期待!

ABP入門系列之2 ABP模板專案

依次按下圖選擇 使用vs2017開啟專案,還原nuget包 設定以web結尾的專案,設定為啟動專案 開啟web.config,修改連線字串。server自行修改,但是name以及database可以不做修改,如若要修改要主要entityframework已使用到的name和database都需要做修...

ABP入門系列目錄 學習Abp框架之實操演練

abp是 asp.net boilerplate project asp.net樣板專案 的簡稱。asp.net boilerplate是乙個用最佳實踐和流行技術開發現代web應用程式的新起點,它旨在成為乙個通用的web應用程式框架和專案模板。框架 abp是基於最新的asp.net core,asp...

ABP入門系列(18) 使用領域服務

abp入門系列目錄 學習abp框架之實操演練原始碼路徑 github learningmpaabp 自上次更新有乙個多月了,發現越往下寫,越不知如何去寫。特別是當遇到ddd中一些概念術語的時候,尤其迷惑。如果只是簡單的去介紹如何去使用abp,我只需參照官方文件,實現到任務清單demo中去就可以了,不...