|
Entity Framework的全稱是ADO.NET Entity Framework,是微軟開(kāi)發(fā)的基于ADO.NET的ORM(Object/Relational Mapping)框架。
Entity Framework的主要特點(diǎn):
1. 支持多種數(shù)據(jù)庫(kù)(Microsoft SQL Server, Oracle, and DB2);
2. 強(qiáng)勁的映射引擎,能很好地支持存儲(chǔ)過(guò)程;
3. 提供Visual Studio集成工具,進(jìn)行可視化操作;
4. 能夠與ASP.NET, WPF, WCF, WCF Data Services進(jìn)行很好的集成。
更多簡(jiǎn)介,請(qǐng)看:ADO.NET Entity Framework At-a-Glance
在博客園新版短消息功能開(kāi)發(fā)中,我們準(zhǔn)備用Entity Framework 4,我們首先面臨這樣的問(wèn)題:
實(shí)體類與數(shù)據(jù)庫(kù)都已經(jīng)存在,而且實(shí)體類的類名與數(shù)據(jù)庫(kù)中的表名,類的屬性與表中對(duì)應(yīng)的字段名稱不同。也就是說(shuō)我們不能使用通常的方法在VS2010中通過(guò)ADO.NET Entity Data Model(.edmx文件)生成實(shí)體類與ObjectContext。
注:這個(gè)實(shí)體類有個(gè)稱呼叫POCO(Plain Old CLR Objects)。
我們解決方法是:在.edmx文件中手動(dòng)配置映射關(guān)系。
下面是操作步驟:
1. 使用ADO.NET Entity Data Model,在VS2010創(chuàng)建一個(gè).edmx文件,如下圖:
2. 根據(jù)Entity Data Model Wizard進(jìn)行操作,在選擇數(shù)據(jù)庫(kù)表的窗口中,注意在Model Namespace輸入框中輸入現(xiàn)有實(shí)體類的命名空間,如下圖:
3. 點(diǎn)擊Finish,生成相應(yīng)的EntityType,如下圖:
這里的EntityType是根據(jù)數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)生成的,與實(shí)際的實(shí)體類是不一樣的,表名與類名不一樣,表的很多字段與類的屬性不一樣。
下面我們配置映射的關(guān)鍵地方:
4. 點(diǎn)擊.edmx窗口點(diǎn)擊空白處,在屬性窗口中將Code Generation Strategy的屬性設(shè)置為None(見(jiàn)下圖),也就是不讓VS2010自動(dòng)生成實(shí)體類和對(duì)應(yīng)的ObjectContext。
5. 繼續(xù)在.edmx窗口,選擇實(shí)體類,點(diǎn)擊右鍵選擇Show in Model Browser,見(jiàn)下圖:
6. 進(jìn)入Model Browser窗口,見(jiàn)下圖:
上圖中,上面是實(shí)體類(這里是VS2010自動(dòng)生成的,與數(shù)據(jù)庫(kù)表是一一對(duì)應(yīng)的),下面是表結(jié)構(gòu)。
修改映射就是在這里:在Entity Types中將類名改為實(shí)際的實(shí)體類名,將屬性改為實(shí)際的屬性,如下圖:
修改之后,映射就配置好了,.edmx文件中實(shí)體類圖中也隨之自動(dòng)更改,見(jiàn)下圖:
7. .edmx文件實(shí)際就是一個(gè)xml文件,映射信息就存放在其中。在VS2010解決方案管理器中選擇這個(gè)文件,右鍵Open With,選擇用XML Editor打開(kāi),就可以看到.edmx文件的內(nèi)容,如下圖:
8. 再寫個(gè)繼承自O(shè)bjectContext的類(見(jiàn)下圖),工作就完成了。
NET技術(shù):在Entity Framework 4中映射現(xiàn)有實(shí)體類(POCO),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。