在Entity Framework 4中映射現有實體類(POCO)

作者: dudu  來源: 博客園  發布時間: 2011-01-31 13:09  閱讀: 11480 次  推薦: 8   原文鏈接   [收藏]  

  Entity Framework的全稱是ADO.NET Entity Framework,是微軟開發的基于ADO.NET的ORM(Object/Relational Mapping)框架。

  Entity Framework的主要特點:

  1. 支持多種數據庫(Microsoft SQL Server, Oracle, and DB2);

  2. 強勁的映射引擎,能很好地支持存儲過程;

  3. 提供Visual Studio集成工具,進行可視化操作;

  4. 能夠與ASP.NET, WPF, WCF, WCF Data Services進行很好的集成。

  更多簡介,請看:ADO.NET Entity Framework At-a-Glance

  在博客園新版短消息功能開發中,我們準備用Entity Framework 4,我們首先面臨這樣的問題:

  實體類與數據庫都已經存在,而且實體類的類名與數據庫中的表名,類的屬性與表中對應的字段名稱不同。也就是說我們不能使用通常的方法在VS2010中通過ADO.NET Entity Data Model(.edmx文件)生成實體類與ObjectContext。

  注:這個實體類有個稱呼叫POCO(Plain Old CLR Objects)。

  我們解決方法是:在.edmx文件中手動配置映射關系。

  下面是操作步驟:

  1. 使用ADO.NET Entity Data Model,在VS2010創建一個.edmx文件,如下圖:

  2. 根據Entity Data Model Wizard進行操作,在選擇數據庫表的窗口中,注意在Model Namespace輸入框中輸入現有實體類的命名空間,如下圖:

  3. 點擊Finish,生成相應的EntityType,如下圖:

  這里的EntityType是根據數據庫中的表結構生成的,與實際的實體類是不一樣的,表名與類名不一樣,表的很多字段與類的屬性不一樣。

  下面我們配置映射的關鍵地方:

  4. 點擊.edmx窗口點擊空白處,在屬性窗口中將Code Generation Strategy的屬性設置為None(見下圖),也就是不讓VS2010自動生成實體類和對應的ObjectContext。

  5. 繼續在.edmx窗口,選擇實體類,點擊右鍵選擇Show in Model Browser,見下圖:

  6. 進入Model Browser窗口,見下圖:

  上圖中,上面是實體類(這里是VS2010自動生成的,與數據庫表是一一對應的),下面是表結構。

  修改映射就是在這里:在Entity Types中將類名改為實際的實體類名,將屬性改為實際的屬性,如下圖:

  修改之后,映射就配置好了,.edmx文件中實體類圖中也隨之自動更改,見下圖:

  7. .edmx文件實際就是一個xml文件,映射信息就存放在其中。在VS2010解決方案管理器中選擇這個文件,右鍵Open With,選擇用XML Editor打開,就可以看到.edmx文件的內容,如下圖:

  8. 再寫個繼承自ObjectContext的類(見下圖),工作就完成了。

8
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()