Entity Framework Core系列之DbContext
前言:
EF Core DbContext表示与数据库的会话,并提供与数据库通信的API,具有以下功能:
- 数据库连接
- 数据操作,如查询和持久化
- 更改追踪
- 模型构建
- 数据映射
- 对象缓存
- 事务管理
数据库连接(Database Connections)
DbContext负责打开和管理数据库的连接
数据操作(Data operations )
DbContext提供了直接执行下列数据操作的方法:
增加(Entity Framework Core系列之DbContext(添加))
修改(Entity Framework Core系列之DbContext(修改))
删除
查询(通过DbSet)
变更追踪(Change Tracking)
更改跟踪器(Change Tracker)检测对实体所做的更改,并相应地设置对象的实体状态。实体的状态决定了数据库将被要求在其上执行的操作类型,这样将会生成对应的SQL。
模型构建(Model building)
DbContext构建基于约定和配置的概念模型,并将其映射到数据库。该模型及其映射是在应用程序启动时构建的,并在应用程序的生命周期内持久保存。
数据映射(Data Mapping)
DbContext包含一个数据映射器层(data mapper layer),负责将SQL查询的结果映射到实体实例和客户端应用程序定义的其他类型
对象缓存(Object caching)
DbContext为被请求从数据存储中检索的对象提供一级缓存。对同一对象的后续请求将返回缓存的对象,而不是执行另一个数据库请求。
事务管理(Transaction management)
当调用DbContext SaveChanges方法时,将创建一个事务,并将所有挂起的更改包装为一个工作单元( Unit Of Work)。如果在将更改应用到数据库时发生错误,则回滚它们,并将数据库保留在未修改的条件中。
此文章只是一些概念的介绍,具体内容会在其他系列文章中完善。
Entity Framework Core系列之DbContext的更多相关文章
- Entity Framework Core系列之DbContext(删除)
上一篇我们介绍了Entity Framework Core系列之DbContext(修改),这一篇我们介绍下删除数据 修改实体的方法取决于context是否正在跟踪需要删除的实体. 下面的示例中con ...
- Entity Framework Core系列之DbContext(修改)
上一篇我们介绍了Entity Framework Core系列之DbContext(添加),这一篇我们介绍下修改数据 修改实体的方法取决于context是否正在跟踪需要修改的实体. 下面的示例中实体由 ...
- Entity Framework Core系列之DbContext(添加)
上一篇我们介绍了Entity Framework Core系列之DbContext,对DbContext有了概念上的了解,这篇将介绍DbContext添加数据 通过DbContext添加实体的主要方法 ...
- Entity Framework Core系列之什么是Entity Framework Core
前言 Entity Framework Core (EF Core)是微软推荐的基于.NET Core framework的应用程序数据访问技术.它是轻量级,可扩展并且支持跨平台开发.EF Core是 ...
- Entity Framework Core(3)-配置DbContext
设计时 DbContext 配置 EF Core 设计时工具如迁移需要能够发现和创建的工作实例DbContext以收集有关应用程序的实体类型以及它们如何映射到数据库架构的详细信息的类型. 此过程可以为 ...
- Entity Framework Core系列之实战(ASP.NET Core MVC应用程序)
本示例演示在ASP.NET 应用程序中使用EF CORE创建数据库并对其做基本的增删改查操作.当然我们默认你的机器上已经安装了.NET CORE SDK以及合适的IDE.本例使用的是Visual St ...
- ASP.NET CORE系列【六】Entity Framework Core 之数据迁移
原文:ASP.NET CORE系列[六]Entity Framework Core 之数据迁移 前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framew ...
- 002从零开始入门Entity Framework Core——DbContext生存期、配置和初始化
阅读须知:本文为入门介绍.指引文章,所示代码皆为最简易(或仅为实现功能)的演示示例版本,不一定切实符合个人(企业)实际开发需求. 一.DbContext生存期 DbContext 的生存期从创建实例时 ...
- ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移
前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framework Core 发现园子里有些文章讲得不是那么细节,对于新手小白来说,可能会有点懵. 特意整理 ...
随机推荐
- Smobiler 4.0 正式发布
l Smobiler4.0提供了三大技术亮点:第三方插件.JS.自定义控件等: 强大的插件移动应用引擎 Smobiler支持分插件打包功能和插件扩展机制,让应用开发更加灵活. 分插件打包是指Smo ...
- C# 爬虫----Cookies处理(Set-Cookie)
/// <summary> /// Cookie 助手 /// </summary> public class CookieHelper { /// <summary&g ...
- 设计模式-建造者模式(Builder)
简介: 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程创建出不同的表示. 结构图: 优点: 使得创建代码和表示代码分离,建造者隐藏了该产品是如何组装的,所以若需要改变一个产品内部的表示,只需 ...
- ElasticSearch-6.2安装head插件
环境 Windows10企业版X64 JDK-1.8 ElasticSearch-6.2.4 node-v10.1 git客户端 步骤 安装node到K盘.如K:\nodejs. 把NODE_HOME ...
- PhpStudy升级MySQL5.7
PhpStudy2017集成环境中的mysql数据库的版本默认是mysql5.5,下面是PhpStudy升级数据库到mysql5.7的方法: 1:备份当前数据库数据,可以导出数据库文件,作为备份,我这 ...
- JestClient 使用教程,教你完成大部分ElasticSearch的操作。
本篇文章代码实现不多,主要是教你如何用JestClient去实现ElasticSearch上的操作. 授人以鱼不如授人以渔. 一.说明 1.elasticsearch版本:6.2.4 . jdk版本: ...
- 解决Azure 消息队列ServiceBus提示证书不信任无权限的问题
笔者在C# 消息队列-Microsoft Azure service bus 服务总线中使用Azure消息队列,最近偶尔会遇到请求数据不入队列的问题,查找日志,问题如下: 异常:X. certific ...
- js中按钮去触发定时器,那么多次点击这个定时器会越来越快,解决方法
并不是越来越快, 而是越来越多; $('button:first').click(function(){ // 记录ID var timerId = setInterval(function(){ ...
- windows下QT打包
1.找到对应的MinGW命令,打开 2.进入exe目录 3.执行windeployqt XX.exe
- python 迭代器协议和生成器
一.什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stoplteration异常,以终止迭代(只能往后走,不能往前退) 2.可迭代 ...