随笔分类 -  03-EF Core

摘要:一. 自定义路由规则 (这里以自定义分表路由规则为例) 1 要求 (1) 根据用户年龄Age字段来分表,分三张表,分别是SysUser_A、SysUser_B、SysUser_C (2) 1-10岁在A表 11-20岁在B表 21岁及以上在C表 2 核心步骤 (1) 自定义分表需要继承 Abstra 阅读全文
posted @ 2024-12-08 08:13 Yaopengfei 阅读(12) 评论(0) 推荐(0) 编辑
摘要:一. 简介 1. 概念扫盲 读写分离、分库分表是完全不同的两回事,不要混为一谈。 分表:主要解决数据量大、存储和查询遇到瓶颈的情况。 分库:主要解决并发量大导致数据库连接数不足的情况。 分库且分表:主要解决数据库连接数不足且单表数据量大导致查询慢的情况 读写分离:解决高并发读的问题。解决不了海量数据 阅读全文
posted @ 2024-11-21 18:35 Yaopengfei 阅读(27) 评论(1) 推荐(0) 编辑
摘要:一. 只分库-实操 1. 目标 有三个DB,分别是ShardingDB_00、ShardingDB_01、ShardingDB_02,每个DB中都有两张表:Order、SysUser。 (1). Order表中的数据,按照用户区域字段Area来分库。 (2). SysUser表中的数据,也是按照用户 阅读全文
posted @ 2024-11-17 18:54 Yaopengfei 阅读(26) 评论(3) 推荐(0) 编辑
摘要:一. 框架简介 1 官方地址 官方文档:https://xuejmnet.github.io/sharding-core-doc/ (文档里版本不是最新的,但是不影响,结合代码样例一起看就可以) gitee:https://gitee.com/xuejm/sharding-core github:h 阅读全文
posted @ 2024-11-13 20:43 Yaopengfei 阅读(46) 评论(1) 推荐(0) 编辑
摘要:一. 说明 1. 目标 这里主要测试 EFCore8.x 版本提供的批量删除 和 批量更新; 以及老杨的框架 [Zack.EFCore.Batch] 以SQLServer为载体进行测试。 2. 准备 (1). 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore. 阅读全文
posted @ 2024-04-16 10:46 Yaopengfei 阅读(266) 评论(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 阅读(362) 评论(0) 推荐(0) 编辑
摘要:一. 说明 1. 目标 这里主要测试 EFCore7.x 版本提供的批量删除 和 批量更新; 以及老杨的框架 [Zack.EFCore.Batch] 以SQLServer为载体进行测试。 2. 准备 (1). 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore. 阅读全文
posted @ 2023-06-10 11:30 Yaopengfei 阅读(410) 评论(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 阅读(286) 评论(1) 推荐(0) 编辑
摘要:一. 表达式树 1. 说明 我们通常都是写linq表达式,但对于一些动态字段,比如点击列排序,默认是实现不了的,除非手动拼接,非常繁琐,这里就可以通过string类型转换成linq 官网:https://dynamic-linq.net/ 【开源免费】 支持的方法详见:https://dynamic 阅读全文
posted @ 2022-06-25 15:06 Yaopengfei 阅读(433) 评论(1) 推荐(0) 编辑
摘要:一. 再探IQueryable 和 IEnumerable 1. 二者生成SQL的区别 普通集合的版本(IEnumerable)是在内存中过滤(客户端评估),而IQueryable版本则是把查询操作翻译成SQL语句,在DB中操作。 代码分享: { using var db = new EFCore6 阅读全文
posted @ 2022-06-19 22:16 Yaopengfei 阅读(553) 评论(1) 推荐(0) 编辑
摘要:一. 批处理-[Zack.EFCore.Batch] (一). 说明 1. 简介 (详细用法见GitHub:https://github.com/yangzhongke/Zack.EFCore.Batch) 【开源免费】 使用这个开发包, EFCore用户可以使用LINQ语句删除或者更新多条数据库记 阅读全文
posted @ 2022-06-19 22:16 Yaopengfei 阅读(1811) 评论(4) 推荐(2) 编辑
摘要:一. EFCore6.0连接MySQL 1. 常用程序集 (1) MySql.EntityFrameworkCore : mysql官方出品,不开源,更新慢 (2) Pomelo.EntityFrameworkCore.MySql: 个人维护,开源,更新快,非常活跃 【推荐】 2. 代码实操 (1) 阅读全文
posted @ 2022-06-14 16:58 Yaopengfei 阅读(1185) 评论(0) 推荐(0) 编辑
摘要:一. EFCore6.0反向测试 1. 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore.Tools EF自身的程序集:Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer 阅读全文
posted @ 2022-06-10 09:27 Yaopengfei 阅读(976) 评论(1) 推荐(0) 编辑
摘要:一. 说明 本节不单独整理了,官方文档写的非常好: https://docs.microsoft.com/zh-cn/ef/core/dbcontext-configuration/ 简单总结几点: 1. DBContext实例化的4种方式 (1). ConfigureService中注入,然后在控 阅读全文
posted @ 2021-02-24 20:57 Yaopengfei 阅读(1103) 评论(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 阅读(2775) 评论(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 阅读(1369) 评论(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 阅读(4348) 评论(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 阅读(6300) 评论(2) 推荐(2) 编辑
摘要:一. 分区、分表、分库 1. 分区 (1).含义 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的。 (2).常用到的指令: alter database <数据库名> add filegroup <文件组名> alter database <数据库名称> ad 阅读全文
posted @ 2020-07-07 22:03 Yaopengfei 阅读(5953) 评论(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 阅读(847) 评论(1) 推荐(0) 编辑