随笔分类 -  03-EF Core

摘要:一. 说明 1. 目标 这里主要测试 EFCore8.x 版本提供的批量删除 和 批量更新; 以及老杨的框架 [Zack.EFCore.Batch] 以SQLServer为载体进行测试。 2. 准备 (1). 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore. 阅读全文
posted @ 2024-04-16 10:46 Yaopengfei 阅读(208) 评论(0) 推荐(0) 编辑
摘要:一. 新功能清单 详见:https://learn.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-8.0/whatsnew 二. 中断性变更 1. LINQ 查询中的 Contains 低版本SQLServer失效 (1). 说明 从 EF Core 阅读全文
posted @ 2024-04-08 10:24 Yaopengfei 阅读(300) 评论(0) 推荐(0) 编辑
摘要:一. 说明 1. 目标 这里主要测试 EFCore7.x 版本提供的批量删除 和 批量更新; 以及老杨的框架 [Zack.EFCore.Batch] 以SQLServer为载体进行测试。 2. 准备 (1). 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore. 阅读全文
posted @ 2023-06-10 11:30 Yaopengfei 阅读(387) 评论(1) 推荐(0) 编辑
摘要:一. Linq改进 (参考官方文档:https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-6.0/whatsnew) 1. IsNullOrWhitespace (1).含义:判断字符串是否为 Null 或 String.Empty 阅读全文
posted @ 2022-07-04 16:10 Yaopengfei 阅读(272) 评论(1) 推荐(0) 编辑
摘要:一. 表达式树 1. 说明 我们通常都是写linq表达式,但对于一些动态字段,比如点击列排序,默认是实现不了的,除非手动拼接,非常繁琐,这里就可以通过string类型转换成linq 官网:https://dynamic-linq.net/ 【开源免费】 支持的方法详见:https://dynamic 阅读全文
posted @ 2022-06-25 15:06 Yaopengfei 阅读(425) 评论(1) 推荐(0) 编辑
摘要:一. 批处理-[Zack.EFCore.Batch] (一). 说明 1. 简介 (详细用法见GitHub:https://github.com/yangzhongke/Zack.EFCore.Batch) 【开源免费】 使用这个开发包, EFCore用户可以使用LINQ语句删除或者更新多条数据库记 阅读全文
posted @ 2022-06-19 22:16 Yaopengfei 阅读(1747) 评论(4) 推荐(2) 编辑
摘要:一. 再探IQueryable 和 IEnumerable 1. 二者生成SQL的区别 普通集合的版本(IEnumerable)是在内存中过滤(客户端评估),而IQueryable版本则是把查询操作翻译成SQL语句,在DB中操作。 代码分享: { using var db = new EFCore6 阅读全文
posted @ 2022-06-19 22:16 Yaopengfei 阅读(535) 评论(1) 推荐(0) 编辑
摘要:一. EFCore6.0连接MySQL 1. 常用程序集 (1) MySql.EntityFrameworkCore : mysql官方出品,不开源,更新慢 (2) Pomelo.EntityFrameworkCore.MySql: 个人维护,开源,更新快,非常活跃 【推荐】 2. 代码实操 (1) 阅读全文
posted @ 2022-06-14 16:58 Yaopengfei 阅读(1172) 评论(0) 推荐(0) 编辑
摘要:一. EFCore6.0反向测试 1. 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore.Tools EF自身的程序集:Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer 阅读全文
posted @ 2022-06-10 09:27 Yaopengfei 阅读(957) 评论(1) 推荐(0) 编辑
摘要:一. 说明 本节不单独整理了,官方文档写的非常好: https://docs.microsoft.com/zh-cn/ef/core/dbcontext-configuration/ 简单总结几点: 1. DBContext实例化的4种方式 (1). ConfigureService中注入,然后在控 阅读全文
posted @ 2021-02-24 20:57 Yaopengfei 阅读(1073) 评论(0) 推荐(0) 编辑
摘要:一. 用法 1. 说明 关于该程序集详细的介绍、背景、原理,直接去看老杨自己的文章。(支持:SQLServer、MySQL、Oracle、Postgresql、Sqlite,EFCore必须5.0以上) 文章参考:https://www.bilibili.com/read/cv8545714 htt 阅读全文
posted @ 2021-02-24 14:09 Yaopengfei 阅读(2733) 评论(9) 推荐(0) 编辑
摘要:一. 新功能(变化) 前置 参考官方文档:https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-5.0/whatsnew https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef 阅读全文
posted @ 2021-02-22 16:37 Yaopengfei 阅读(1354) 评论(3) 推荐(0) 编辑
摘要:一. 说明 1. 环境准备 (1).测试载体:.Net 5.0 控制台 (2).数据库:MySQL 5.7 (事先改为大小写敏感 lower_case_table_names=0) (3).EFCore相关程序集:(这里统一用5.0.6 版本) Microsoft.EntityFrameworkCo 阅读全文
posted @ 2020-11-19 11:53 Yaopengfei 阅读(4302) 评论(9) 推荐(4) 编辑
摘要:一. EFCore剖析 1. 过滤查询 eg:查询用户姓名中含有p字母的所有用户信息。 写法1:使用EF.Functions.Like var data1 = dbContext.T_UserInfor.Where(u => EF.Functions.Like(u.userName, "%p%")) 阅读全文
posted @ 2020-09-01 11:39 Yaopengfei 阅读(6076) 评论(2) 推荐(2) 编辑
摘要:一. 分区、分表、分库 1. 分区 (1).含义 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的。 (2).常用到的指令: alter database <数据库名> add filegroup <文件组名> alter database <数据库名称> ad 阅读全文
posted @ 2020-07-07 22:03 Yaopengfei 阅读(5799) 评论(5) 推荐(2) 编辑
摘要:1. OfType 获取集合中中指定类型元素。 object[] obj = { 1, 23, 4, 5, 555, "aaa", "bbb" }; int max = obj.OfType<int>().Max(); //结果是55, 获取int类型中的最大值 2. selectMany 相当于二 阅读全文
posted @ 2020-02-04 15:50 Yaopengfei 阅读(832) 评论(1) 推荐(0) 编辑
摘要:一. 各种性能测试 这里分享EF、EFCore、EF Core调用SQL语句 分别在1000条、1w、4w、10w下的增删改查需要的时间。(括号里代表的都是对应的range方法) 1. EF测试 2. EFCore测试 3. EF Core调用SQL语句 4. EFCore组装成SQL语句,inse 阅读全文
posted @ 2020-01-17 11:55 Yaopengfei 阅读(7637) 评论(7) 推荐(3) 编辑
摘要:1.使用DbContext池 在Core Mvc中,如果使用 AddDbContextPool 方法,那么在控制器请求 DbContext 实例时,我们会首先检查池中有无可用的实例。 请求处理完成后,实例的任何状态都将被重置,并且实例本身会返回池中。 从概念上讲,此方法类似于 ADO.NET 连接池 阅读全文
posted @ 2020-01-14 21:40 Yaopengfei 阅读(4143) 评论(5) 推荐(4) 编辑
摘要:一. 简介 1.背景 索引用于快速找出在某个列中有某一特定值的行,不使用索引,数据库必须从第一条记录开始读完整个表,直到找出相关的行。表越大,查询数据所花费的时间越多, 如果表中查询的列有一个索引,数据库能快速到达一个位置去搜索数据。 2.含义 索引是一个单独的,存储在磁盘上的数据结构,它们包含对数 阅读全文
posted @ 2019-11-09 21:53 Yaopengfei 阅读(1513) 评论(1) 推荐(0) 编辑
摘要:一. SqlMethods操作 1. Like 自定义的通配表达式。%表示零长度或任意长度的字符串;_表示一个字符;[]表示在某范围区间的一个字符;[^]表示不在某范围区间的一个字符。 (1). 例如:查询消费者ID以“C”开头的消费者。 var q = from c in db.Customers 阅读全文
posted @ 2019-11-06 16:10 Yaopengfei 阅读(988) 评论(2) 推荐(0) 编辑