什麼是Entity Framework 編寫和管理ADO.NET是一個繁瑣而又無聊的工作。微軟為你的應用提供了一個名為“Entity Framework”的ORM框架來自動化管理你的資料庫。 微軟對Entity Framework給出了以下定義: EF是一個對象關係映射(ORM)框架,它能使開發人員 ...
什麼是Entity Framework
編寫和管理ADO.NET是一個繁瑣而又無聊的工作。微軟為你的應用提供了一個名為“Entity Framework”的ORM框架來自動化管理你的資料庫。
微軟對Entity Framework給出了以下定義:
EF是一個對象關係映射(ORM)框架,它能使開發人員用關係型數據定義特定領域的對象,並且開發人員不再需要編寫大量的資料庫訪問代碼。使用Entity Framework,開發人員用Linq幫助他們進行查詢,檢索出的數據自動生成強類型對象。EF提供如變動追蹤,身份驗證,延遲載入,查詢編譯使得開發人員更加專註於他們的業務邏輯上而不是數據訪問模塊的開發上。EF是基於ADO.NET上進行增強的,它為開發人員提供了自動的數據持久化機制。
EF在以下三種場景中都可以使用。第一,如果你已經有存在的資料庫,或者你想先設計好你的資料庫再進行其他的開發。第二,你只想專註設計特定領域的類,然後才使用這些類來生成資料庫。第三,你想通過visual studio提供的設計器來設計你的資料庫模型,然後再從該模型中生成資料庫和對應的類。
以下圖例說明上面的三種情況。
1.EF幫助你從已有的資料庫中建立類,這樣你就可以通過這個類生成的實例和ADO.NET打交道。
2.你可以專註於你的業務來設計類型,EF根據這些類型幫助你創建資料庫。
3.EF提供模型設計器,當你設計完成後,EF既幫你生成資料庫也幫你生成類型代碼。
什麼是ORM
ORM是一種幫你將對象轉化成關係型資料庫中數據的工具,例如存入MS SQL Server中,並且是全自動的,無需額外的代碼。O/RM包括三個主要的方面:業務對象,關係資料庫對象和如何將業務對象轉化為資料庫對象(如表,視圖,存儲過程)的映射信息對象。ORM讓我們可以獨立的設計資料庫和業務對象類。這讓我們的應用程式更易於維護和可擴展。因此程式員們可以不再手動編寫CRUD(Create, Read, Update, Delete)操作了。
ORM幫你生成類並與資料庫進行互操作,如下所示
除了微軟提供的開源ORM框架EF之外,還有許多.net 的ORM框架,如 DataObjects.Net, NHibernate, OpenAccess, SubSonic 等。