Entity Framework 利用了抽象化數(shù)據(jù)結(jié)構(gòu)的方式,將每個(gè)數(shù)據(jù)庫對(duì)象都轉(zhuǎn)換成應(yīng)用程序?qū)ο?(entity),而數(shù)據(jù)字段都轉(zhuǎn)換為屬性 (property),關(guān)系則轉(zhuǎn)換為結(jié)合屬性 (association),讓數(shù)據(jù)庫的 E/R 模型完全的轉(zhuǎn)成對(duì)象模型,如此讓程序設(shè)計(jì)師能用最熟悉的編程語言來調(diào)用訪問。而在抽象化的結(jié)構(gòu)之下,則是高度集成與對(duì)應(yīng)結(jié)構(gòu)的概念層、對(duì)應(yīng)層和儲(chǔ)存層,以及支持 Entity Framework 的數(shù)據(jù)提供者 (provider),讓數(shù)據(jù)訪問的工作得以順利與完整的進(jìn)行。
將數(shù)據(jù)邏輯層切分為三塊:
分別為 Conceptual Schema, Mapping Schema 與 Storage Schema 三層:(1) 概念層:負(fù)責(zé)向上的對(duì)象與屬性顯露與訪問,讓上層的應(yīng)用程序碼可以如面向?qū)ο蟮姆绞桨阍L問數(shù)據(jù)。這部分由設(shè)計(jì)器自動(dòng)生成,表現(xiàn)在一系列的類。
(2) 對(duì)應(yīng)層:將上方的概念層和底下的儲(chǔ)存層的數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)在一起,負(fù)責(zé)將上層的概念層結(jié)構(gòu)以及下層的儲(chǔ)存體結(jié)構(gòu)中的成員結(jié)合在一起,以確認(rèn)數(shù)據(jù)的來源與流向。這部分由描述語言實(shí)現(xiàn),可以自由修改。
(3) 儲(chǔ)存層:依不同數(shù)據(jù)庫與數(shù)據(jù)結(jié)構(gòu),而顯露出實(shí)體的數(shù)據(jù)結(jié)構(gòu)體,負(fù)責(zé)與數(shù)據(jù)庫管理系統(tǒng) (DBMS) 中的數(shù)據(jù)表做實(shí)體對(duì)應(yīng) (Physical Mapping),讓數(shù)據(jù)可以輸入正確的數(shù)據(jù)來源中,或者由正確的數(shù)據(jù)來源取出。