為了學習ORM,選擇了EntityFramework,經歷了三天兩夜的煎熬,N多次錯誤,在群里高手的幫助下,終於成功,現在將我的心路歷程記錄下來,一是讓自己有個記錄,另外就是讓其它人少走些彎路。
我的開發環境是Win7+VS2012,數據庫環境是Ubuntu12.04+MySQL+Mono+Jexus
計划開發完后整個運行在Linux下。
1、下載MySQL Connector/Net 6.8.3
地址:http://dev.mysql.com/downloads/connector/net/
有幾個版本,關於使用哪個版本需要參考另一篇文章:逆水寒龍 的博文《關於Linux和Windows下部署mysql.data.dll的注冊問題》
還需要下載一個MySQL for VisualStudio版本,用於在VS中可以在數據源中引用MySQL
地址:《Mysql for Visual Studio 》 http://www.05sun.com/downinfo/97255.html
2、下載並安裝 EF6(我不知道這步是不是必須的,各位可以試下並告訴我,因為在NuGet中也有安裝,不知道是否是一個意思,后面會寫具體方法)
地址:http://www.microsoft.com/en-us/download/details.aspx?id=40762
3、打開VS2012,新建一個項目
4、在項目中先安裝EF6。
點擊“程序包管理器控制台”。
5、在代碼下面會出現界面
6、在“PM>”后面輸入:
Install-Package EntityFramework
7、再輸入:Install-Package MySql.Data.Entity.EF6
8、注意一點,“這里引自逆水寒龍的博文”,一定要加上那段,最終如圖中所示。(其實我的生成的是app.config
此時如果直接添加ado.net實體模型的話是有以下錯誤的:
注意了:App.config中生成的Provider是有問題的,這時候要手動添加紅色線畫出的一條:
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
9、重新生成一下整個解決方案,在項目里右鍵-》添加-》新建項
10、選擇:數據-》ADO.NET 實體數據模型
11、選擇“來自數據庫的EF設計器”,這是DBFirst設計模式,如果這里選擇了“來自數據庫的Code First”,則就是通過代碼來創建數據庫。
因為我這里的選建立好的MySQL數據庫,所以我選擇了第一項。
11、選擇“新建連接”-》“更改”-》MySQL
12、確定之后要輸入MySQL的各項信息並選擇相應的數據庫
13、選擇完畢后就是如下圖所示,然后點擊“下一步”
14、勾選所用的表,點“完成”
15、現在我們已經建立好了EF6的環境了,來一步程序試試
添加一個“Web窗體”,默認"WebForm1.aspx“,在其中增加一個Label控件,打開后台程序,寫入以下代碼
protected void Page_Load(object sender, EventArgs e)
{
KFClubEntities en = new KFClubEntities();
this.Label1.Text = en.ServiceMan.FirstOrDefault().ServiceMan_Name;
}
按F5運行,我這前提是已經建立好表結構與表內數據,大家可以按LINQ To SQL的語法去做。
好了,先寫到這吧,至於開發完以后如果遷移到Ubuntu下,就得明天再試了。