日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ABP入门系列(21)——切换MySQL数据库

發(fā)布時(shí)間:2023/12/10 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABP入门系列(21)——切换MySQL数据库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 引言

Abp支持MySql已經(jīng)不是什么新鮮事了,但按照官方文檔:Entity Framework - MySql Integration來,你未必能成功切換,本文就記錄下切換MySql數(shù)據(jù)庫遇到的一些坑,供后人乘涼!

2. 環(huán)境準(zhǔn)備

MySql數(shù)據(jù)庫好啊,開源免費(fèi),不再像SqlServer那樣累贅。而且結(jié)合.Net Core,他倆賊般配的說!但MySql自從賣給Oracle后,好像就不怎么好玩了,安裝起來還是挺費(fèi)勁的說。一怒之下,轉(zhuǎn)投MariaDB。

MariaDB由MySQL之父Michael Widenius主導(dǎo)開發(fā)的,他早前曾以10億美元的價(jià)格,將自己創(chuàng)建的公司MySQL AB賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權(quán)也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。MariaDB是目前最受關(guān)注的MySQL數(shù)據(jù)庫衍生版,也被視為開源數(shù)據(jù)庫MySQL的替代品。

MariaDB完全兼容MySql,所以就放一百二十個(gè)心好了。就不廢話了,自行點(diǎn)擊MariaDB Downloads 下載安裝吧。

3.開始切換環(huán)境

本文還是基于我之前的LearningMpaAbpDemo進(jìn)行演示。

3.1. 安裝MySql.Data.Entity

Solution-->右鍵-->'Manage NuGet Packages for solution...',安裝MySql.Data.Entity到以”.Web"和“.EntityFramework”結(jié)尾的項(xiàng)目中去,如下圖:

MySql.Data.Entity


注意版本號,安裝最新,我可不保證可以成功!
修改“.EntityFramework”結(jié)尾的項(xiàng)目Migrations文件夾下的Configuration.cs類,在構(gòu)造函數(shù)中添加SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());。如下所示:

?

3.2. 設(shè)置連接字符串

修改Web.Config,添加連接字符串:
<add name="Default" connectionString="server=localhost;port=3306;database=sampledb;uid=root;password=***" providerName="MySql.Data.MySqlClient"/>
之前的連接字符串就注釋掉吧!

3.3. 重新添加遷移

如果你的Migrations文件夾下有很多以日期開頭(比如:20171122022_)的遷移文件,全部刪掉他們!
然后Tools-->Nuget Package Manage--> Package Manage Console:輸入Add-Migration "Abp_MoveTo_Mysql"執(zhí)行:

進(jìn)行遷移

?

是的,你可能執(zhí)行不成功,會(huì)遇到第一個(gè)坑:

Type is not resolved for member 'MySql.Data.MySqlClient.MySqlException,MySql.Data, Version=6.9.10.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'.

如何搞呢?下載MySql為.Net平臺提供的Connector安裝就好了,
安裝地址:Download Connector/Net。記住要選對對應(yīng)的版本:

6.9.10

?

安裝后,重新執(zhí)行以上命令即可。

3.4. 執(zhí)行遷移

執(zhí)行命令Update-Database -Verbose,這個(gè)時(shí)候你會(huì)遇到第二個(gè)坑:

Index column size too large. The maximum column size is 767 bytes.

這是因?yàn)閙ysql對列的大小有限制。EF6使用MigrationHistory表跟蹤模式的變化,以確保一致性的數(shù)據(jù)庫模式和概念模式。由于主鍵太大,默認(rèn)情況下此表不適合MySQL。要解決這種情況,需要縮小該表的鍵大小。具體可以參考以下兩個(gè)鏈接:

  • Entity Framework with MySql and Migrations failing because “max key length is 767 bytes”
  • Entity Framework 6 Support
  • 這邊有個(gè)簡單的做法,只需修改DbContext類上添加[DbConfigurationType(typeof(MySqlEFConfiguration))]聲明即可。如下:

    ?

    重新執(zhí)行遷移命令,即可!

    4. 最后

    好久沒更新了,現(xiàn)在重拾Abp,后續(xù)會(huì)結(jié)合ABP+.Net Core+MySQL,帶給大家進(jìn)階分享,盡情期待!



    作者:圣杰
    鏈接:https://www.jianshu.com/p/543e34da16a7
    來源:簡書
    著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

    總結(jié)

    以上是生活随笔為你收集整理的ABP入门系列(21)——切换MySQL数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。