Entity Framework 架構簡介

2021-05-22 02:18:50 字數 1343 閱讀 5622

當微軟的wcf 大行其道,通用資料訪問模型entity framework卻稍遜一籌,有很多需要完善和進步的地方,本文對entity framework 架構做一下簡介。  

實體框架(entitry framework 以下簡稱ef)看起來像乙個有趣的技術,更強大,比linq to sql 更先進。

這兩種技術有不同的哲學,而只是一些功能也有類似的實現。

它允許開發人員查詢和運算元據使用的概念模型,而不是物理儲存模型。

ado.net實體框架是乙個分層了的架構,抽象了資料庫的關係模式,表示的是乙個概念模型。

下圖描述了實體框架的層次。

首先,最底層的data source 是乙個可以儲存在乙個或多個資料庫的資料。

data providers : 資料還是使用ado.net data provider 提供訪問。現在提供對sql server的很好的訪問支援,對oracle 也提供了的訪問支援。參考文章using ef oracle sample provider with edm designer。

entity data model (edm) : 實體資料模型包括三部分:

1、概念模型定義語言:conceptual schema definition language (csdl): 宣告和定義實體,關聯,繼承,...

實體類,都從這個概念模型格式中生成。

2、儲存定義語言:store schema definition language ssdl :

儲存的容器(即資料庫)中存放的元資料。

將在csdl檔案中的實體和ssdl中的表建立對映關係。

entityclient是ado.net託管提供支援的實體資料模型描述的訪問資料。

它類似於sqlclient的,oracleclient等。

它提供像entitycommand,entityconnection和entitytransaction幾個部分。

object services :

該元件使您可以查詢,插入,更新和刪除資料,此時,例項型別的例項是作為強型別的clr物件來表達。

物件服務同時支援實體sql和linq to entities查詢。

entity sql (esql) :

實體sql是一種衍生的transact - sql中,用於查詢和操縱實體資料模型中定義的實體。

它支援繼承和派生。

這object service和entity client都可以執行esql語句。

linq to entities :  是一種強型別的查詢語言,用來查詢實體模型中定義的實體。

附上自微軟msdn的中文資料,表示了ado.net entity framework 體系結構:

entity framework 批量刪除

以前用sql寫批量刪除的時候,感覺挺利索的,簡潔地寫了 public bool delectusersuggest string addsql 然後在頁面層直接呼叫 現在用entity framework,感覺有點麻煩不能直接delete,還要先把資料查出來,以下是主要 1 先查出實體 region...

Entity Framework 動態查詢

不想多說什麼直接說 region 搜尋並分頁 ljy 傳入搜尋條件,當前頁碼,每頁的顯示的條數,資料的總數 輸出引數 三個引數,返回 商實體 搜尋條件 當前頁碼 每頁的顯示的條數 資料的總數 public iqueryable endregion 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...

Entity Framework資源整理

ef支援三種構建方法 1.database first方法。2.model first方法。3.code first 方法 使用codefirst建立並更新資料庫 code first自動更新資料庫 遷移資料庫可能出現的問題 延遲載入 entity framework底層操作封裝 ddd domai...