探索豐富多彩的ADO.NET Entity Framework的工具
前一段時間園子里有很多文章介紹分析了Linq To SQL,它可以說是一個簡單實現的ORM,是微軟針對數據和對象的阻抗不平衡的問題。C# 3.0推出一些新的特性,比如Extension Method, Lambda Expression, ADO.NET Entity Framework。
其實這些新特性都是用來為Linq服務。Linq To SQL將程序員從以往寫大量的sql查詢語句、取值、賦值中解放出來,在intellisense和編譯上做了很多工作,使得這些查詢能夠在編譯期進行檢查。同時微軟推出ADO.NET Entity Framework,即下一代的ADO.NET。它是比Linq To SQL更加強大的ORM,讓開發人員只需要著眼于領域對象模型的開發,而不需要考慮它們是如何與關系數據庫交互。
本文由一個簡單的例子進行介紹Entity Framework是如何使用的。在此之前,必須下載ADO.NET Entity Framework runtime 和tools,官方也提供了很多示例下載。下面正式開始ADO.NET Entity Framework之旅(開發工具VS 2008 beta,以Northiwind數據庫為例)。
首先建立一個Console project(要選擇.NET Framework 3.5),然后點擊Add New Item,看見ADO.NET Entity Data Model選項:
然后會出現ADO.NET Entity Framework,選擇數據庫,選擇表、視圖、存儲過程等,按照向導一步步來就可以了,在這里只選擇Customers和Orders表。在Solution Explore視圖里面點擊Northwind.edmx,可以看到Entity的信息(看上去很像Linq To SQL的dbml設計視圖),然后將它們改名為Customer和Order。
在實體框架中,我們可以通過ADO.NET Entity Framework進行查詢,它的使用方法就像ADO.NET中的SqlCommand。不同的是SqlCommand使用標準SQL語句對數據庫進行查詢,而EntityCommand使用Entity SQL對EntityContainer進行查詢,當然最終實體框架會將Entity SQL轉換成標準SQL語句查詢數據庫。