天天看點

【菜鳥學EF】——初識EF

前提

  首先感謝組織給的機會,有幸參加到圖書館管理系統中,也是在這個過程學習到很多内容,其中這個系統采用MVC+EF+WCF,關于涉及到這三種都剛剛開始接觸,希望将這些内容和大家分享一下。

ORM

  對象關系映射(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程式技術,用于實作面向對象程式設計語言裡不同類型系統的資料之間的轉換。從效果上說,它其實是建立了一個可在程式設計語言裡使用的“虛拟對象資料庫”。

  這些官方的話可能不太容易了解,用一張圖來表示一下吧。

【菜鳥學EF】——初識EF

  ORM的核心思想就是把實體的變化映射成表的變化,這樣我們在開發的時候不再關心資料庫中的表的東西,而是直接面向實體開發。這樣我們不會用到原生的SQL語句,是以不知怎麼懂資料庫語言也能輕易上手,友善快捷。ORM模型的簡單性簡化了資料庫查詢過程。使用ORM查詢工具,使用者可以通路期望資料,而不必了解資料庫的底層結構。

EF

  EF概念:實體架構(Entity Framework)是ADO.NET中的一組支援面向資料的軟體應用程式的技術,是微軟的一個ORM架構。

了解EF資料模型

  EF本質上是一個ORM架構,它需要把對象映射到底層資料庫中的表,為此,它使用了三個模型來描述這種映射關系。

(1)概念模型(Conceptual Model):主要展現為一組可以被應用程式直接使用的類。這些類也是我們在程式中直接使用的類,通常稱之為“實體(Entity)”

(2)存儲模型(Storage Model):主要展現為一組與底層資料存儲媒體(比如資料庫系統)直接對應的類。

(3)概念-存儲模型映射(Conceptual- Storage Mapping),解決“概念模型”中的類如何與“存儲模型”中的類互相對應的問題。

(2)和(3)中的類型由EF内部使用,在實際開發中通常觸及不到。

EF的核心流程

【菜鳥學EF】——初識EF

  從圖中就能了解我們為什麼不使用原生SQL語言了,不需要之間面向資料庫執行增、删、改、查操作,而是需要一個上下文(Context)直接操作實體。

EF的好處

官方說法:

1、應用程式不再對特定的資料引擎後存儲架構具有寫死的依賴性。

2、可以在不更改應用程式代碼的情況下更改概念模型和特定于存儲的架構之間的映射。

3、開發人員可以利用映射到各種存儲架構(可能在不同的資料庫管理系統中實作)一緻的應用程式對象模型。

4、多個概念模型可以映射到同一個存儲架構

5、語言內建查詢支援可為查詢提供針對概念性模型的編譯時文法驗證。

  當然上面的優點比較官方,而且這是百度的結果,個人認為使用EF的好處就是:

1.面向對象 不用SQL直接編碼,就可以向操作對象一樣操作資料庫

2.提高開發效率 ORM可以自動對實體對象與資料庫中Table進行字段與屬性的映射,不需要單獨的資料通路層。

3.友善轉移 當資料庫發生改變時,不需要對模型進行改動,隻需要修改映射關系就可以了。

缺點:

【總結】