EF Core Day1 ——DbContext初识
------------恢复内容开始------------
EF中的上下文(DbContext)简介
DbContext是实体类和数据库之间的桥梁,DbContext主要负责与数据交互,主要作用:
1、DbContext包含所有的实体映射到数据库表的实体集(DbSet < TEntity >)。
2、DbContext 将LINQ-to-Entities查询转换为SQL查询并将其发送到数据库。
3、更改跟踪: 它跟踪每个实体从数据库中查询出来后发生的修改变化。
4、持久化数据: 它也基于实体状态执行插入、更新和删除操作到数据库中。
- 编写和执行查询
- 将查询结果具体化为实体对象
- 跟踪对这些对象进行的更改
- 将对象更改保存回数据库
- 将内存中的对象绑定到 UI 控件
DbSet<TEntity> 类
DbContext中的DbSet
DbSet表示上下文中指定类型的所有实体的集合或可从数据库中查询的指定类型的所有实体的集合。
DbSet<TEntity>可用于查询和保存的实例 TEntity
。 针对的 LINQ 查询 DbSet<TEntity> 将转换为针对数据库的查询。
针对的 LINQ 查询结果 DbSet<TEntity> 将包含从数据库返回的结果,并且可能不会反映在尚未保存到数据库的上下文中所做的更改。 例如,结果将不包含新添加的实体,可能仍包含标记为要删除的实体。
根据所使用的数据库,可以在内存中计算 LINQ 查询的某些部分,而不是将其 DbSet<TEntity> 转换为数据库查询。
DbSet<TEntity> 对象通常从 DbSet<TEntity> 派生的属性 DbContext 或从 Set<TEntity>() 方法获取。
EF Core Day1 ——DbContext初识的更多相关文章
- EF Core中DbContext可以被Dispose多次
我们知道,在EF Core中DbContext用完后要记得调用Dispose方法释放资源.但是其实DbContext可以多次调用Dispose方法,虽然只有第一次Dispose会起作用,但是DbCon ...
- EF Core 中DbContext不会跟踪聚合方法和Join方法返回的结果,及FromSql方法使用讲解
EF Core中: 如果调用Queryable.Count等聚合方法,不会导致DbContext跟踪(track)任何实体. 此外调用Queryable.Join方法返回的匿名类型也不会被DbCont ...
- 第三节:EF Core上下文DbContext相关配置和生命周期
一. 配置相关 1. 数据库连接字符串的写法 (1).账号密码:Server=localhost;Database=EFDB01;User ID=sa;Password=123456; (2).win ...
- EF Core 快速上手——创建应用的DbContext
系列文章 EF Core 快速上手--EF Core 入门 EF Core 快速上手--EF Core的三种主要关系类型 本节导航 定义应用的DbContext 创建DbContext的一个实例 创建 ...
- [翻译 EF Core in Action 2.2] 创建应用程序的数据库上下文
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译 EF Core in Action 1.8] MyFirstEfCoreApp应用程序设置
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- [翻译] EF Core in Action 关于这本书
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- EF Core Fluent API
多对多配置 先安装 Install-Package MySql.Data.EntityFrameworkCore 创建3个表 创建类 public class Role { public long I ...
- EF Core中Key属性相同的实体只能被跟踪(track)一次
在EF Core的DbContext中,我们可以通过DbContext或DbSet的Attach方法,来让DbContext上下文来跟踪(track)一个实体对象,假设现在我们有User实体对象,其U ...
随机推荐
- Web安全知识记录
本文分享自天翼云开发者社区<Web安全知识记录>,作者:赵****雅 1.网站置于服务器中,而服务器则是指连接在网络中的一台计算机.当我们浏览网站时,实际上就是我们用个人计算机通过网络访问 ...
- 百万架构师第三十九课:RabbitMq:Linux安装RabbitMq|JavaGuide
来源:https://javaguide.net RPM包安装RabbitMQ RabbitMQ的安装非常简单,由于RabbitMQ依赖于Erlang,所以需要先安装Erlang,解决依赖关系后,就可 ...
- 20 分钟高效掌握 cursor
本身属于在前端小组的一次小分享,这里做个同步分享. 一.pro 权益说明 目前公司购买了 2 个 pro 月付账号,权益包括无限制 tab 补全与 ai 聊天,但每个月只有 500 个快速请求权益,如 ...
- Django setting可以配置什么?
Setting配置信息 注册子应用 # 注意:需要修改Django的全局配置文`settings.py`'''1. 创建子应用 1)在pycharm中创建 python manage.py start ...
- QT5笔记: 23. 标准对话框
文件对话框: QString fileName = QFileDialog::getOpenFileName(this, "打开一个文件", path, "文本(*.tx ...
- Linux - VMware workstation安装虚拟机
Step1:新建虚拟机 主页/文件 >> 创建新的虚拟机 新建虚拟机向导 典型(推荐)(T) 通过几个简单的步骤创建Workstation虚拟机 自定义(高级)(C) 创建带有SCSI控制 ...
- luogu-P10596题解
简要题意 一个有 \(N\) 个元素的集合有 \(2N\) 个不同子集(包含空集),现在要在这 \(2N\) 个集合中取出若干集合(至少一个),使得它们的交集的元素个数为 \(K\),求取法的方案数, ...
- redis bind protected-mode
概要 redis bind.protected-mode 配置 安装并启动 yum install -y redis systemctl enable --now redis # 使用 redis-s ...
- 一个ABAQUS model需要的Component
component of abaqus model Abaqus模型由几个不同的组件组成,它们共同描述了要分析的物理问题. a abaqus model 至少要有: discrete goemtry ...
- ocr识别过程中报错 tesseract is not installed
这个问题无论在初始编译时或者在后来坏境变更调试时都会遇到的问题. 解决:问题原因是源码中的默认路径位置与文件位置不同,需要更改一下