在談論EF框架之前,我們先扯扯以前用過的三層架構。
U層:表示層,跟用戶交互用的。
B層:業務邏輯層,處理業務邏輯用的。
D層:數據訪問層,操作數據庫用的,負責對數據的增刪改查。
在寫D層的時候,你會發現對不同對象的數據進行增刪改查的代碼好像一樣的,無非寫的sql語句不同,參數不同。
花時間,乾重復性的活,多沒意思,於是我們把重複不變的地方抽象出來,進行重構。把變化的地方用變量來代替。於是我們sqlhelper助手類誕生了,我們把對數據庫的鏈接、增、刪、該、查方法封裝到sqlhelper類裏。
有了sqlhelper後,當我們讀取對象數據和改變對象狀態時,只要new它一下,它把sql語句和參數當作變量傳進來,就解決了。那時候覺得,sqlhelper好實用,好美。用一句廣告詞:“自從有了sqlhelper,媽媽再也不用擔心我的學習了。”
難道有sqlhelper就完美了嗎?除此之外還有沒有更好解決方案呢?那就是引入一個ORM。
其實ORM爲我們生成DAL,與其自己寫D層代碼不如用orm吧,ORM負責保存、讀取、刪除對象而且還負責生成sql,
我們只需要關心對象就好。從此我們進入的對象關係映射時代(ORM)
而實體框架EF正是ORM框架中的一種,既然ORM框架有以上作用,EF肯定具有以上功能啊。
1、什麼是ORM(Object Relational Mapping)?
ORM指的是面向對象的對象模型和關係型數據庫的數據結構之間的相互裝換。
說白了就是:表實體和表之間的裝換。
O: => 表實體
R : =>數據庫裏的表
M : => 映射關係
2、什麼EF(EntityFramework)?
實體框架EF是ADO.NET中的一組支持開發面向數據的軟件應用程序技術,是微軟的一種ORM框架。
扯了這麼多,從三層架構中的DAL---》sqlhelper-->ORM與我們的今天要說的主角EF框架,其實就像米老師說的那就話,我們編制知識網。