EF中的持久性場景
使用EF實現實體持久化(保存)到數據庫有兩種情況:在線場景和離線場景。
1.在線場景
在線場景中,context是同一個上下文實例(從DbContext派生),檢索和保存實體都通過同一個context上下文,因此在線場景中的持久化十分簡單。

這種方案適用於連接本地數據庫或同一網絡上的數據庫。
優點:
執行速度快。
上下文跟蹤所有實體,並在實體發生更改時自動設置適當的狀態。
缺點:
上下文保持在線狀態,因此與數據庫的連接保持打開狀態。
利用更多資源。
2.離線場景
離線場景中,使用不同上下文實例進行檢索和保存。一個context檢索實體后被釋放,創建一個新的實體進行保存工作。
離線場景的保存相對復雜,因為新創建的context沒有跟蹤實體,因此必須在保存實體之前為每個實體設置適當的狀態。在上圖中,應用程序使用Context 1檢索實體圖,執行一些CUD(創建,更新,刪除)操作。使用Context2保存時,Context2不知道在這個實體圖上執行過哪些操作。

離線場景適用於Web應用程序或遠程數據庫。
優點:
與在線方案相比,使用更少的資源。
沒有與數據庫的長連接。
缺點:
需要在保存之前為每個實體設置適當的狀態。
執行速度比在線方案慢。
EF系列目錄鏈接:Entity Franmework系列教程匯總
