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 发现园子里有些文章讲得不是那么细节,对于新手小白来说,可能会有点懵. 特意整理 ...
随机推荐
- MySQL高可用复制管理工具 —— Orchestrator介绍
背景 在MySQL高可用架构中,目前使用比较多的是Percona的PXC,Galera以及MySQL 5.7之后的MGR等,其他的还有的MHA,今天介绍另一个比较好用的MySQL高可用复制管理工具:O ...
- .Net Core 实践 - 使用log4net记录日志(3)— log4net向ElasticSearch写日志
demo地址:https://github.com/PuzzledAlien/log4net_demo/tree/master/DotNetCoreConsole_V3 Windows 10 安装部署 ...
- Linux 查找最大文件
1.使用命令df -h 查看硬盘空间 2.使用命令du -h –max-depth=1 /var/log/* 查看/var/log路径下文件的大小 du -sh /* 查看哪个目录最大,一步一步的查 ...
- mybatis基础(上)
框架图 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory 将SqlSessionFactoryBui ...
- 01-css的引入方式
[转]01-css的引入方式 引入css方式(重点掌握) 行内样式 内接样式 外接样式 3.1 链接式 3.1 导入式 css介绍 现在的互联网前端分三层: HTML:超文本标记语言.从语义的角度描述 ...
- 关于Xcode9.0版本模拟器Reset重置操作变更
- QT信号槽connect的第五个参数
用过QT的小伙伴都知道连接信号槽的connect方法,但是这个方法有第五个参数,一般都是用的默认的 connect(th,SIGNAL(started()),tmpmyobject,SLOT(show ...
- MySQL下perror工具查看System Error Code信息
在MySQL数据库的维护过程中,我们有时候会在MySQL的错误日志文件中看到一些关于Operating system error的错误信息,例如在MySQL的错误日志里面,有时候会看到关于 Inn ...
- SQLServer之创建隐式事务
隐式事务创建注意事项 IMPLICIT_TRANSACTIONS为 ON 时,系统处于“隐式”事务模式. 这意味着如果 @@TRANCOUNT = 0,下列任一 Transact-SQL 语句都会开始 ...
- 【原】Java学习笔记019 - 面向对象
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 仔细想一想,Ani ...