什么是EF?
編寫和管理用于數據訪問的ADO.Net代碼是一件枯燥且乏味的工作。微軟提供了一個名為Entity Framework的O/RM框架,可以為你的應用程序自動化數據庫相關活動。
微軟將EF定義如下:
微軟ADO.NET Entity Framework是一種對象/關系映射的框架,它使開發人員處理關系數據以特定領域對象的形式,消除了開發人員經常需要編寫的大量數據訪問代碼。使用EF,開發人員使用LINQ查詢,以強類型對象的形式檢索和操作數據。EF的ORM實現提供服務如更改追蹤,身份定位,延遲加載,查詢轉換,從而開發者可以專注于特定程序的業務邏輯而不是數據訪問基礎。
EF是一種對象/關系映射的框架。它是ADO.NET的增強,它為開發人員提供了一種數據庫中數據訪問和存儲的自動化機制。
在三種情況下EF非常有用。第一,如果你已經擁有了一個數據庫或者你希望先設計你的數據庫而不是應用程序的其他部分。第二,你想專注與你的領域類并且根據這些領域類創建數據庫。第三,你想在可視化設計器上設計你的數據庫模式,然后創建數據庫和類。
下圖說明了上述的情況。
如上圖所指出,EF可根據現有數據庫創建了數據訪問類,因此你可以使用這些類與數據庫交互,而不是使用ADO.Net。
EF也可以根據你的領域類創建數據庫,因此你可以專注與你的領域驅動設計。
EF為您提供模型設計器,您可以在其中設計數據庫模型,然后EF根據您的數據庫模型創建數據庫和類。
什么是O/RM?
ORM是一套將數據從領域對象存儲到關系數據庫(比如微軟的SQL Server)的工具,它是一種自動化方式,不需要過多的編程。
O/RM包含了三個主要部分:領域類對象,關系數據庫對象以及如何將領域對象映射到關系數據庫對象(表,視圖和存儲過程)的映射信息。ORM允許我們將我們的數據庫設計和領域類設計分開。這使得應用程序可維護和可擴展。ORM也自動化了標準的CRUD操作(新建,查詢,更新和刪除),這樣開發人員就不必手動地編寫代碼。
典型的ORM工具為您的應用程序生成數據庫交互的類,如下圖所示。
訪問維基百科以獲取關于對象-關系映射的更多信息。
請注意EF是微軟的一個開源的框架。Github地址