EF中的持久性场景

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

1.在线场景

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

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

优点:

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

缺点:

上下文保持在线状态,因此与数据库的连接保持打开状态。
利用更多资源。

2.离线场景

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

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

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

优点:

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

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

转载于:https://www.cnblogs.com/zxwDont/p/11097479.html

EF框架学习(5)---EF中的在线和离线场景相关推荐

  1. .net之EF框架学习

    1.EF(Entity Framework) 实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. 2.什么是ORM? ORM指的是面向对象的对象模型和关 ...

  2. c ef框架-mysql_.net EF框架 MySql實現實例

    1.nuget中添加包EF和MySql.Data.Entity 2.config文件添加如下配置 1.配置entitframework節點(一般安裝EF時自動添加) 2.配置system.data節點 ...

  3. 【EF框架】聊一聊EF框架

    前言 EF框架的全称EntityFramework ,Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. 叙述 ORM ORM是一 ...

  4. 使用Ef框架进行分页..EF模糊查询..EF多表内连接查询

    先来DAL层代码..稍后解释... public List<Staff> Getstaff(string DepId,string staffname,DateTime date ,int ...

  5. Hibernate框架--学习笔记(中):一对多配置、多对多配置

    一.一对多: 一个客户可以有多个联系人,一个联系人只能属于一个客户. 1.一对多映射配置: (1)创建实体类 //客户类:一个客户可以有多个联系人,一个联系人只能属于一个客户 public class ...

  6. EF框架你了解多少?

    [EF框架的认识] EF教程视频大全 一. EF简介 ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Con ...

  7. Visual Studio中使用EF框架的过程

    实体框架ADO.NET Entity Framework(EF)一套支持面向数据的软件应用程序开发的技术,它可让开发人员使用映射到数据源中的逻辑架构的概念模型. 一.搭建EF框架 1.BLL(业务层) ...

  8. EF框架中,在实体中手动更新字段,数据库数据未同步到程序中应该怎么解决呢?

    在一些技术不是很强的选手手中,设计数据库时,难免会未考虑到某些字段,只能到后期实现功能时,才能觉察出来数据库中或是少写字段,或是多加了无用的字段,故我们还不得不去数据库中做些手脚. 本文列举的是在as ...

  9. .NET EF框架的安装、及三种开发模式

    一.EF框架的安装: 要在VS(如Visual Studio 2012)中使用EF框架,就需要先进行安装. 我们需要给这个应用安装EntityFramework包,引入EF框架相关的内容,我们需要引入 ...

最新文章

  1. Android实现电蚊香/Service服务管理类
  2. php下正则替换多个br /
  3. Reverse String
  4. H5学习从0到1-H5的元素属性(3)
  5. CodeIgniter模型
  6. 一步一步实现自己的模拟控件(5)——隐藏类
  7. 华为内部面试题库---(6)
  8. js类似matlab_JavaScript与MATLAB的计算性能差异对比研究
  9. Oracle搜索所有表查找关键字,根据关键字查询oracle中所有表的记录
  10. 怎样在两台计算机之间建立硬盘共享,如何让两台电脑硬盘共享在一起
  11. python计算增长率函数_python – 基于增长率优化值的迭代计算
  12. TIA Protal 精智面板中的动画外观
  13. 屏幕录制一键截图工具 FastStone Capture 9.0 绿色便携中文版
  14. 云个人计算机,把个人电脑变成你的云主机
  15. C++中类成员函数指针使用方法
  16. 为什么onenote一直在加载_超好用的笔记软件,Onenote是我的最爱
  17. 数据的处理方法及触摸屏终端
  18. Google Map 离线地图 - Ok Maps
  19. Debian10中使用deb包安装WineHQ(鬼畜依赖解决)
  20. java camel_Apache Camel建立基于消息的应用

热门文章

  1. stylus之方法(Functions)
  2. Python-100例(5-6) 排序斐波那契数列
  3. https证书pfx 生成 pem,crt,key
  4. oracle中出现会话被锁
  5. .NETFramework-Web.Mvc:ViewResult
  6. [转载来之雨松:NGUI研究院之为什么打开界面太慢(十三)]
  7. An error occurred while searching for implementations of method
  8. 关于tag,viewWithTag
  9. 一步一步学Remoting系列文章
  10. Android 各控件的使用 - 按钮(Button)