最近要搭建新項(xiàng)目,因?yàn)檫€沒有用過.net core,所以想用.net core的環(huán)境搭建新項(xiàng)目,因?yàn)椴皇煜?net core的架構(gòu),所以就下載了abp項(xiàng)目先了解一下。但是自己太菜了,下載了模板項(xiàng)目,在啟動(dòng)的過程中一波三折,其曲折真是無法用言語形容。(但是我沒有灰心!沒有什么技術(shù)是在努力的情況下學(xué)不會(huì)的,是嘛)在搜集信息的過程中,很多網(wǎng)友分享的資料都很有幫助,但是有一個(gè)問題的方法對(duì)于我這邊遇到的問題卻用不上,因?yàn)閱栴}沒有得到解決。但是卻給了我不同的思路,從而讓問題得到解決,模板項(xiàng)目終于順利啟動(dòng)。
先貼上我參考的帖子,正是因?yàn)橛袃?yōu)秀的網(wǎng)友的分享,我才打開了abp模板項(xiàng)目的大門?。ú欢嗾f了,遠(yuǎn)程握手為敬吧,哈哈)
參考資料
ABP入門教程(一)啟動(dòng)模板項(xiàng)目
ABP (.Net Core) 使用MySQL數(shù)據(jù)庫
按照參考資料的操作,只需要簡(jiǎn)單幾步就可以把模板項(xiàng)目啟動(dòng)起來,但是!不知道為何,任何新鮮的技術(shù)到了我這里,就要費(fèi)上N個(gè)步驟,花費(fèi)九牛二虎之力,絞盡腦汁都還是一堆紅色報(bào)錯(cuò),滿屏紅讓我沮喪,讓我懷疑人生......
emmmm直接開始從步驟說起吧。
- abp模板下載abp模板下載
- VS2019打開項(xiàng)目解決方案(用VS2017應(yīng)該也可以,不過要額外下載.net sdk 3.0安裝。)
- 找到【解決方案名.Web.Host】項(xiàng)目里面的a,修改數(shù)據(jù)庫連接字符串因?yàn)槲冶镜氐膕qlserver沒有連接成功,缺配置工具,沒有選擇重裝。改換mysql配置。所以我的配置是"ConnectionStrings": { "Default": "server=localhost;uid=root;pwd=123;port=3306;database=ExtraModuleDb;" }
- 在【解決方案名.EntityFrameworkCore】用Nuget添加安裝引用(也可以參考上面的第二個(gè)鏈接,用命令執(zhí)行)install-package
- 在【解決方案名.EntityFrameworkCore】里面找到DbContextConfigurer文件,修改數(shù)據(jù)庫配置連接 `public static void Configure(DbContextOptionsBuilder<KYKWMSExtraModuleDbContext> builder, string connectionString) { builder.UseMySql(connectionString); } public static void Configure(DbContextOptionsBuilder<KYKWMSExtraModuleDbContext> builder, DbConnection connection) { builder.UseMySql(connection); }`
- 數(shù)據(jù)遷移最好先刪除【解決方案名.EntityFrameworkCore】下的【Migration】文件夾然后將【解決方案名.Web.Host】設(shè)為啟動(dòng)項(xiàng)目,在程序包管理器控制臺(tái)(Nuget控制臺(tái))里設(shè)定默認(rèn)項(xiàng)目為EntityFrameworkCore。在程序包管理器控制臺(tái)輸入命令: Add-Migration Init生成成功,會(huì)看到【解決方案名.EntityFrameworkCore】下的【Migration】文件夾下面多了三個(gè)文件。然后更新數(shù)據(jù)庫,abp會(huì)自動(dòng)建庫。在程序包管理器控制臺(tái)輸入命令: Update-Database -Verbose到了這里呢,問題就來了,我正是被這個(gè)問題困擾了一個(gè)上午。好熟悉的錯(cuò)誤:You have an error in your SQL syntax肉眼可見,datetime那里帶了一個(gè)長(zhǎng)度,而在mysql語句創(chuàng)建表的時(shí)候,datetime類型是不允許帶長(zhǎng)度的。于是我的做法就是,手動(dòng)把代碼里面datetime(6)全部替換成datetime,再次在程序包管理器控制臺(tái)輸入命令: Update-Database -Verbose但得到的結(jié)果仍然是You have an error in your SQL syntax。反復(fù)操作 Add-Migration Init Update-Database -Verbose 后,依然沒辦法解決這個(gè)問題,我有一點(diǎn)無奈,同時(shí)有一點(diǎn)不甘心。我可是個(gè)老鳥啊,遇到未知的問題,解決問題的方式就只能是坐著嘆氣了么?! (肯定不是?。┪缧菟艘挥X,下午起來接著解決這個(gè)問題。我看了一下,為什么是添加 引用呢?這個(gè)產(chǎn)商不是官方Oracle的呢。以前的項(xiàng)目不都是添加MySql.Data嗎?帶著這個(gè)疑惑,于是我就嘗試著換 MySql.Data 去添加引用,添加引用的時(shí)候,發(fā)現(xiàn)它有一個(gè)EntityFrameworkCore的版本: MySql.Da ,于是把兩個(gè)都安裝上。(一定是要兩個(gè)都安裝,只安裝 MySql.Data 是不完整的,至少在數(shù)據(jù)庫配置鏈接出錯(cuò)的時(shí)候,是沒有提示,不知道應(yīng)該改成UseMySQL才可用)
安裝好后,運(yùn)行發(fā)現(xiàn)有報(bào)錯(cuò),原來數(shù)據(jù)庫配置連接里面的MySql要大寫的才對(duì)。(其實(shí)報(bào)錯(cuò)的時(shí)候會(huì)很疑惑,明明是MySql啊,為什么不支持了呢?也不知道是要改大寫,把鼠標(biāo)放上去選擇修復(fù)的時(shí)候,就變成大寫,錯(cuò)誤就消失了。)
就這樣編譯成功!說明用官方的包也是可以用的!
接著重新重復(fù)第6步的命令:
刪除【Migration】文件夾下面的文件,在程序包控制臺(tái)執(zhí)行命令:
Add-Migration Init
Update-Database -Verbose
好了!看到表成功的在創(chuàng)建!
但是,不能開心太早!問題又來了!
字符串的長(zhǎng)度太長(zhǎng)了,最后一句提示varchar max length=65535。我還不知道這些代碼是怎么生成的,要怎么把最基礎(chǔ)的代碼改掉才不至于報(bào)低級(jí)的錯(cuò)誤。所以在這里我解決的方法就是手動(dòng)去把【Migration】文件夾下面的文件,超出數(shù)據(jù)類型長(zhǎng)度的全部手動(dòng)修改。第一次沒有改全的,報(bào)一次錯(cuò)改一次,后面基本都是數(shù)據(jù)類型長(zhǎng)度超出的問題。全部改好了,再 Update-Database,最終數(shù)據(jù)庫成功創(chuàng)建好,項(xiàng)目也運(yùn)行起來了。
emmmm,前端的因?yàn)檫€不太熟悉這種分離式的項(xiàng)目,vue.js還跑不起來,看不到整個(gè)項(xiàng)目的全貌。這里就作為第一部分結(jié)束先。
1.《.net如何連接mysql?總結(jié)很全面速看!Net Core 3.1版本使用MySQL數(shù)據(jù)庫遷移啟動(dòng)模板項(xiàng)目》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。
2.《.net如何連接mysql?總結(jié)很全面速看!Net Core 3.1版本使用MySQL數(shù)據(jù)庫遷移啟動(dòng)模板項(xiàng)目》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/gl/2195481.html