ADO.NET Entity Framework 是微軟以 ADO.NET 為基礎(chǔ)所發(fā)展出來(lái)的對(duì)象關(guān)系對(duì)應(yīng) (O/R Mapping) 解決方案睦袖,不僅支持SQL Server,還支持MySQL、Oracle等數(shù)據(jù)庫(kù)放刨。
接下來(lái)給大家講解EF6+MYSQL具體的配置流程贡羔,以及配置過(guò)程中一些常見(jiàn)錯(cuò)誤的解決方法。
開(kāi)發(fā)環(huán)境:Win10 + VS2015
數(shù)據(jù)庫(kù):MySQL 5.7.11
一涵妥、下載并安裝插件
注意:安裝MySQL for Visual Studio需下載MySQL Installer乖菱,然后在安裝過(guò)程中選擇MySQL for Visual Studio。
二蓬网、創(chuàng)建新的ASP.NET MVC空白項(xiàng)目
1.創(chuàng)建項(xiàng)目
2.采用Nuget方式安裝MySql.Data.Entity
安裝完成后會(huì)多出4項(xiàng)引用
3.添加 ADO.NET 實(shí)體數(shù)據(jù)模型
4.選擇“來(lái)自數(shù)據(jù)庫(kù)的 EF 設(shè)計(jì)器”窒所,我這里已建好數(shù)據(jù)庫(kù),所以選擇了DBFirst模式
5.新建連接帆锋,選擇“更改(C)...”
6.選擇“MySQL DataBase”吵取,填寫(xiě)連接信息
7.選擇需要的表,點(diǎn)擊“完成”窟坐,然后就大功告成了海渊!
三、使用空EF設(shè)計(jì)器生成數(shù)據(jù)庫(kù)
1.步驟與上面類似哲鸳,這里選擇“空EF設(shè)計(jì)器模型”
2.添加實(shí)體
3.創(chuàng)建一個(gè)新MySQL的數(shù)據(jù)庫(kù)
4.更改模型屬性革屠,選擇“SSDLTomYsql.tt(VS)”DDL生成模板(這一步很重要,否則后面會(huì)出錯(cuò))
5.右擊模型設(shè)計(jì)器热康,選擇“根據(jù)模型生成數(shù)據(jù)庫(kù)(G)...”
6.填寫(xiě)數(shù)據(jù)庫(kù)連接信息凝果,這里選擇剛剛創(chuàng)建的“test2”數(shù)據(jù)庫(kù)
7.生成數(shù)據(jù)庫(kù)腳本
8.將腳本全部復(fù)制到數(shù)據(jù)庫(kù)中執(zhí)行
9.大功告成,數(shù)據(jù)庫(kù)成功創(chuàng)建!
四缺狠、配置過(guò)程中常見(jiàn)錯(cuò)誤及解決方案
1.無(wú)法使用實(shí)體框架
解決方案:采用NuGet方式安裝MySql.Data.Entity问慎,參見(jiàn)第二節(jié)第4步
2.未修改DDL生成模板
解決方案:修改DDL生成模板,參見(jiàn)第三節(jié)第4步
3.生成模型時(shí)錯(cuò)誤
解決方案:在數(shù)據(jù)庫(kù)中執(zhí)行以下命令:
use <<數(shù)據(jù)庫(kù)名稱>>; set global optimizer_switch='derived_merge=OFF';
五挤茄、完成
現(xiàn)在你就可以跟使用SQL Server一樣使用MySQL了如叼,雖然過(guò)程有點(diǎn)復(fù)雜,但還是很值得的穷劈。
以上內(nèi)容是本人結(jié)合一些網(wǎng)上教程和自己的配置經(jīng)驗(yàn)笼恰,總結(jié)出來(lái)的成果,親測(cè)可用歇终。許多人被EF6+MySQL的配置折騰了很久社证,希望這篇文章可以給各位提供一點(diǎn)幫助,有不足之處歡迎留言评凝!
本文為作者kMacro原創(chuàng)追葡,轉(zhuǎn)載請(qǐng)注明來(lái)源:http://www.reibang.com/p/910a4175bf7b。