Entity Framework入门教程(5)---EF中的持久化场景

EF中的持久性场景

使用EF实现实体持久化(保存)到数据库有两种状况:在线场景和离线场景。html

1.在线场景

在线场景中,context是同一个上下文实例(从DbContext派生),检索和保存实体都经过同一个context上下文,所以在线场景中的持久化十分简单。数据库

 

这种方案适用于链接本地数据库或同一网络上的数据库。网络

优势:post

执行速度快。
上下文跟踪全部实体,并在实体发生更改时自动设置适当的状态。htm

缺点:blog

上下文保持在线状态,所以与数据库的链接保持打开状态。
利用更多资源。教程

2.离线场景

离线场景中,使用不一样上下文实例进行检索和保存。一个context检索实体后被释放,建立一个新的实体进行保存工做。资源

离线场景的保存相对复杂,由于新建立的context没有跟踪实体,所以必须在保存实体以前为每一个实体设置适当的状态。在上图中,应用程序使用Context 1检索实体图,执行一些CUD(建立,更新,删除)操做。使用Context2保存时,Context2不知道在这个实体图上执行过哪些操做。get

 

离线场景适用于Web应用程序或远程数据库。it

优势:

与在线方案相比,使用更少的资源。
没有与数据库的长链接。
缺点:

须要在保存以前为每一个实体设置适当的状态。
执行速度比在线方案慢。

 

EF系列目录连接:Entity Franmework系列教程汇总