EF
首先是看到 EF (Entity Framework) 這是什麼? 需要學嗎?原來它是微軟出的ORM解決方案. (參考Wiki內的說明) (又與跨語言的查詢技術LINQ相關)
那麼, 以前聽過的ODBC呢? 我的腦海裡湧現更多問號....
ODBC, OLE-DB, ADO
先找了這三者的說明, 在壹讀裡面有寫過兩次 (2014年, 2016年), 文章連結:ODBC(Open Database Connectivity,開放資料庫互連)
1992出現最早,是一種底層的訪問技術。
---僅支持關係資料庫
DAO(Data Access Object,數據訪問對象)
1993,最適用於單系統應用程式或在小範圍本地分布使用。
所以如果資料庫是Access資料庫且是本地使用的話,建議使用這種訪問方式
---應用的專一性
RDO(Remote Data Objects,遠程數據對象)
1995,是一個到ODBC的DAO style包裝
---是在odbc基礎上的
OLE DB(Object Linking and Embedding, Database,對象連接嵌入資料庫)
1997,OLE DB 是建立在 ODBC 功能之上的一個開放規範。
ODBC 是為訪問關係型資料庫而專門開發的;
OLE DB 則用於訪問關係型和非關係型信息源.
---號稱取代ODBC,但也兼容ODBC
ADO(ActiveX Data Object,活動數據對象)
1996,ADO是DAO/RDO的後繼產物。
是基於OLE DB的,屬於資料庫訪問的高層應用API涵式庫。
作為最新的資料庫訪問模式,ADO的使用也是簡單易用,
ADO涉及的數據存儲有DSN(數據源名稱)、ODBC(開放式數據連接)以及OLE DB三種方式。
1998年時,微軟提出了一個下一代的應用程式開發框架,產生了 ASP+, ADO+, ....等等
後來2000年時這兩個改名為 ASP.Net, ADO.Net
到此, 比較連接上久遠前,學校所學的概念.
ORM ?
參考文章有簡單來說:
ORM即Object/Relation Mapping的簡寫,一般稱作「對象關係映射」,
它的作用是在關係數據庫和業務實體對象之間作一個映射,讓我們在具體的操作業務對象的時候,不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。
當底層資料庫的實作品變更時,由於程式設計師並不直接對資料庫進行操作,因此程式內容幾乎不用修改,也就是降低了物件導向程式與資料庫之間的耦合關係。
看起來 ORM不錯, 但是一般認為:
- 對於一般Web應用開發,ORM能帶來好處
- ORM消耗大量記憶體
- 大量資料存取時產生的效能問題
Entity Framework (又稱ADO.NET Entity Framework) 是微軟以 ADO.NET 為基礎所發展出來的物件關聯對應 (O/R Mapping) 解決方案, 約在2008出現。
結論,
我會了解一下 ORM & EF, 但是目前寫程式還是用ADO.Net
相關資料收集:
- SQL Server 連線基本概念
- 重新認識了下Entity Framework
- Entity Framework 快速上手與學習資源整理
- ASP.NET MVC 使用 Entity Framework Code First - 基礎入門
- 使用ENTITY FRAMEWORK CODE FIRST建立多對多關係
- MSDN:Entity Framework Database First
沒有留言:
張貼留言