![](https://img-blog.csdnimg.cn/1516d14cec6e4b4f8736ee00da1e4e1a.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
EF Core
文章平均质量分 93
Entity Framework Core
JimCarter
与专业人员为伍,guyiming2011@126.com
展开
-
【必看】一文学会使用Entity Framework Core
本文基于发稿时EF Core的最新版本5.0.文章目录1. 基础篇2. 原理篇3. 优化篇4. 常见问题4.1 怎么查看生成的sql4.2 怎么直接执行sql4.3 怎么执行事务4.4 怎么使用数据库锁4.4.1 乐观锁4.4.2 悲观锁4.5 导航属性的类型4.6 主外键的默认命名规则4.7 EF Core怎么知道`SaveChanges`时哪些内容要提交到数据库?4.8 禁止自动给主键赋值5. 一些“坑”5.1 跟踪查询引起的问题1. 基础篇快速开始如何根据实体类生成模型实体关系的配置值转换原创 2021-06-02 16:59:10 · 595 阅读 · 0 评论 -
Entity Framework Core 6.0 中的新功能介绍
EF Core本次升级了不少东西,大概看了一下,对一些自我感觉比较常用的内容做了一些罗列,未尽之处还请阅读官方完整文档:https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-6.0/whatsnew支持创建和使用时态表(SQL Server 2016新增的功能),现在已经支持了下述几个功能:如果在项目里有使用时态表,可转到详情继续阅读。我们知道应用在首次使用DbContext时会花费一定的时间来初始化ef模型,仅创建DbContext实例不原创 2022-07-08 17:30:06 · 1002 阅读 · 0 评论 -
Entity Framework Core——10.性能优化
https://docs.microsoft.com/zh-cn/ef/core/performance/文章目录1. 定位性能问题1.1 通过`LogTo`方法2.2 将sql与LINQ查询关联起来2.解决问题3. 进行Benchmark4. 查询优化4.1 正确使用索引4.2 只查需要的属性4.3 使用`Take`限制返回的条数4.4 使用拆分查询避免笛卡尔积爆炸4.5 使用`Include`进行预先加载4.6 注意“懒加载”产生的N+1问题4.7 缓冲和流式处理4.8 efcore的内部缓冲4..原创 2021-06-01 15:50:32 · 1258 阅读 · 0 评论 -
Entity Framework Core——9.日志记录与拦截器
https://docs.microsoft.com/zh-cn/ef/core/logging-events-diagnostics/文章目录1.机制2. 简单的日志记录2.1 日志的详细信息2.2 日志过滤2.3 设置日志的内容和格式3. 使用`Microsoft.Extensions.Logging`4. 事件5. 拦截器5.1 注册拦截器5.2 实现数据库拦截器5.2.1 示例5.3 对`OnSaveChanges`的拦截1.机制efcore包含一些用于生成日志、响应时间和或者诊断结果的机.原创 2021-05-31 14:59:57 · 3694 阅读 · 1 评论 -
Entity Framework Core——8.数据保存原理详解
https://docs.microsoft.com/zh-cn/ef/core/saving/文章目录1. 增删改的基本用法2. 级联删除2.1 配置级联行为3. 并发控制3.1 工作原理3.2 解决并发冲突4. 事务4.1 默认事务行为4.2 手动控制事务4.3 事务保存点4.4 多个`DbContext`共享一个事务4.5 ADO.NET与EFCORE共享一个事务4.6 使用`System.Transactions`控制更大scope的事务5. 断开连接的实体5.1 主键自动生成5.2 主键未.原创 2021-05-29 21:35:34 · 685 阅读 · 0 评论 -
Entity Framework Core——7.数据查询原理详解
https://docs.microsoft.com/zh-cn/ef/core/querying/文章目录1. 查询`sql`的生成机制2. 跟踪查询与非跟踪查询3. 导航属性数据的加载3.1 预加载,使用`Include`3.2 显式加载3.3 懒加载3.4 修复可能出现的循环引用导致json序列化失败4. 拆分查询4.1 `AsSplitQuery`4.2 启用全局拆分4.3 拆分查询的缺点5. 执行原始`sql`5.1 原始`sql`与`linq`的结合5.2 `change tracking.原创 2021-05-17 17:23:37 · 1283 阅读 · 0 评论 -
Entity Framework Core——6.更改跟踪(change tracker)工作原理
https://docs.microsoft.com/en-us/ef/core/change-tracking/文章目录1. 什么时候跟踪、什么时候不跟踪?2. 实体的状态3. 手动跟踪实体3.1 附加现有实体3.2 更新现有实体3.3 删除实体3.3.1 删除子实体3.3.2 删除父实体3.4 自定义跟踪4. 访问跟踪实体4.1 访问实体(`EntityEntry`)4.2 访问实体的某个属性(`PropertyEntry1. 什么时候跟踪、什么时候不跟踪?每个数据库上线文实例都会跟踪对实体的更.原创 2021-05-26 17:13:54 · 2204 阅读 · 0 评论 -
Entity Framework Core——5.管理数据库架构、进行数据迁移
文章目录1. 进行迁移1.1 几个迁移常用命令1.2 迁移过程1.3 `Migrations`文件夹的作用1.4 自定义`Migrations`里的迁移代码1.4.1 列重命名1.4.2 添加原始SQL2. 执行迁移在实际项目中,数据模型随着功能的实现而变化:添加和删除新的实体或属性,并且需要相应地更改数据库架构,使其与应用程序保持同步。 EF Core 中的迁移功能能够以递增方式更新数据库架构,使其与应用程序的数据模型保持同步,同时保留数据库中的现有数据。简要地说,迁移的方式如下:当引入数据模型更原创 2021-08-12 17:31:12 · 1304 阅读 · 0 评论 -
Entity Framework Core——4.值转换器(Value Conversion)
https://docs.microsoft.com/zh-cn/ef/core/modeling/value-conversions?tabs=data-annotations文章目录1.简介2. 配置值转换器3. 框架内置的转换器1.简介值转换器可以在读取或写入数据时改变属性的值。值转换器定义了两种类型:ModelClrType:实体里定义的clr类型。ProviderClrType:是数据库provider理解的clr类型。比如当把enum以字符串的形式存储到数据库时,ModelC.原创 2021-05-10 14:38:07 · 1820 阅读 · 1 评论 -
Entity Framework Core——3.实体关系的配置
https://docs.microsoft.com/zh-cn/ef/core/modeling/relationships文章目录1. 术语介绍2. 自动配置的关系2.1 完整配置2.2 无外键情况下进行配置2.3 无导航属性对情况下配置3. 手动配置关系3.1 无导航属性对下的配置3.2 手动指定外键3.3 无导航属性下的配置3.4 将外键指向到非主键上3.5 设置外键可否为空3.6 设置级联删除4. 其他关系的配置4.1 一对一4.2 多对多1. 术语介绍Dependent entity.原创 2021-05-10 14:36:03 · 1223 阅读 · 0 评论 -
Entity Framework Core——2.如何根据实体类生成模型?
https://docs.microsoft.com/zh-cn/ef/core/modeling/EF根据实体类上的一系列约定来创建模型。配置约定一般有两种方式:在DbContext的OnModelCreating方法中使用fluent API配置: internal class MyContext : DbContext { public DbSet<Blog> Blogs { get; set; } protected overr.原创 2021-05-10 14:30:38 · 1056 阅读 · 0 评论 -
Entity Framework Core——1.快速开始
https://docs.microsoft.com/zh-cn/ef/core/dbcontext-configuration/https://www.entityframeworktutorial.net/basics/how-entity-framework-works.aspx1.快速开始假如有以下的数据模型:分别创建实体如下:public class Student{ public int ID { get; set; } public strin.原创 2021-05-10 14:24:39 · 1320 阅读 · 2 评论