實體框架(Entity Framework)簡介
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設計、成都網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務開福,十年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
簡稱EF,與ADO.NET關系
ADO.NET Entity Framework 是微軟以 ADO.NET 為基礎所發(fā)展出來的對象關系對應 (O/R Mapping) 解決方案,早期被稱為 ObjectSpace,現(xiàn)已經(jīng)包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service Pack 1 中發(fā)表。
實體框架Entity Framework 是 ADO.NET 中的一組支持開發(fā)面向數(shù)據(jù)的軟件應用程序的技術。是微軟的一個ORM框架。
EF很自動化,性能好不好?
EF性能還算是比較高:EF就是幫我們生成SQL腳本,所以在SQLServer這層面,基本都是一樣的。
性能損耗:主要就在生成sql腳本的的階段,根據(jù)實體的變化,再根據(jù)edmx里面的ORM映射關系生成SQL,幾乎性能的損耗在整個系統(tǒng)級別來看是微乎其微的。
當一些EF生成的SQL不太好的時候,可以使用自己寫的SQL,或者執(zhí)行存儲過程。
什么是O/R Mapping
廣義上,ORM指的是面向?qū)ο蟮膶ο竽P秃完P系型數(shù)據(jù)庫的數(shù)據(jù)結構之間的相互轉(zhuǎn)換。
狹義上,ORM可以被認為是,基于關系型數(shù)據(jù)庫的數(shù)據(jù)存儲,實現(xiàn)一個虛擬的面向?qū)ο蟮臄?shù)據(jù)訪問接口。理想情況下,基于這樣一個面向?qū)ο蟮慕涌?,持久化一個OO對象應該不需要要了解任何關系型數(shù)據(jù)庫存儲數(shù)據(jù)的實現(xiàn)細節(jié)。
ORM:所有實現(xiàn)了ORM框架,都是實現(xiàn)一個統(tǒng)一的入口,開發(fā)人員通過這個統(tǒng)一入口對表實體進行CRUD操作,然后ORM框架自動幫我們監(jiān)控實體狀態(tài)的變化,然后根據(jù)實體的狀態(tài)生成相應的SQL腳本,然后調(diào)用底層的ADO.NET執(zhí)行到數(shù)據(jù)庫里去影響到表的變化。
ORM in EF
在EF中的實體數(shù)據(jù)模型(EDM)由以下三種模型和具有相應文件擴展名的映射文件進行定義:
存儲架構定義語言文件 (.ssdl) -- 定義存儲模型,對象的定義,又稱邏輯模型(O)
概念架構定義語言文件 (.csdl) -- 定義概念模型,表的定義(R)
映射規(guī)范語言文件 (.msl) -- 定義存儲模型與概念模型之間的映射(M)
實體框架 使用這些基于 XML 的模型和映射文件將對概念模型中的實體和關系的創(chuàng)建、讀取、更新和刪除操作轉(zhuǎn)換為數(shù)據(jù)源中的等效操作。EDM 甚至支持將概念模型中的實體映射到數(shù)據(jù)源中的存儲過程。