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

來源:互聯網
上載者:User

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的類(見),工作就完成了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.