使用EF實現實體持久化(保存)到數據庫有兩種狀況:在線場景和離線場景。html
在線場景中,context是同一個上下文實例(從DbContext派生),檢索和保存實體都經過同一個context上下文,所以在線場景中的持久化十分簡單。數據庫
這種方案適用於鏈接本地數據庫或同一網絡上的數據庫。網絡
優勢:post
執行速度快。
上下文跟蹤全部實體,並在實體發生更改時自動設置適當的狀態。htm
缺點:blog
上下文保持在線狀態,所以與數據庫的鏈接保持打開狀態。
利用更多資源。教程
離線場景中,使用不一樣上下文實例進行檢索和保存。一個context檢索實體後被釋放,建立一個新的實體進行保存工做。資源
離線場景的保存相對複雜,由於新建立的context沒有跟蹤實體,所以必須在保存實體以前爲每一個實體設置適當的狀態。在上圖中,應用程序使用Context 1檢索實體圖,執行一些CUD(建立,更新,刪除)操做。使用Context2保存時,Context2不知道在這個實體圖上執行過哪些操做。get
離線場景適用於Web應用程序或遠程數據庫。it
優勢:
與在線方案相比,使用更少的資源。
沒有與數據庫的長鏈接。
缺點:
須要在保存以前爲每一個實體設置適當的狀態。
執行速度比在線方案慢。
EF系列目錄連接:Entity Franmework系列教程彙總