随笔分类 - 03-EF Core
摘要:一. 自定义路由规则 (这里以自定义分表路由规则为例) 1 要求 (1) 根据用户年龄Age字段来分表,分三张表,分别是SysUser_A、SysUser_B、SysUser_C (2) 1-10岁在A表 11-20岁在B表 21岁及以上在C表 2 核心步骤 (1) 自定义分表需要继承 Abstra
阅读全文
摘要:一. 简介 1. 概念扫盲 读写分离、分库分表是完全不同的两回事,不要混为一谈。 分表:主要解决数据量大、存储和查询遇到瓶颈的情况。 分库:主要解决并发量大导致数据库连接数不足的情况。 分库且分表:主要解决数据库连接数不足且单表数据量大导致查询慢的情况 读写分离:解决高并发读的问题。解决不了海量数据
阅读全文
摘要:一. 只分库-实操 1. 目标 有三个DB,分别是ShardingDB_00、ShardingDB_01、ShardingDB_02,每个DB中都有两张表:Order、SysUser。 (1). Order表中的数据,按照用户区域字段Area来分库。 (2). SysUser表中的数据,也是按照用户
阅读全文
摘要:一. 框架简介 1 官方地址 官方文档:https://xuejmnet.github.io/sharding-core-doc/ (文档里版本不是最新的,但是不影响,结合代码样例一起看就可以) gitee:https://gitee.com/xuejm/sharding-core github:h
阅读全文
摘要:一. 说明 1. 目标 这里主要测试 EFCore8.x 版本提供的批量删除 和 批量更新; 以及老杨的框架 [Zack.EFCore.Batch] 以SQLServer为载体进行测试。 2. 准备 (1). 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore.
阅读全文
摘要:一. 新功能清单 详见:https://learn.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-8.0/whatsnew 二. 中断性变更 1. LINQ 查询中的 Contains 低版本SQLServer失效 (1). 说明 从 EF Core
阅读全文
摘要:一. 说明 1. 目标 这里主要测试 EFCore7.x 版本提供的批量删除 和 批量更新; 以及老杨的框架 [Zack.EFCore.Batch] 以SQLServer为载体进行测试。 2. 准备 (1). 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore.
阅读全文
摘要:一. Linq改进 (参考官方文档:https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-6.0/whatsnew) 1. IsNullOrWhitespace (1).含义:判断字符串是否为 Null 或 String.Empty
阅读全文
摘要:一. 表达式树 1. 说明 我们通常都是写linq表达式,但对于一些动态字段,比如点击列排序,默认是实现不了的,除非手动拼接,非常繁琐,这里就可以通过string类型转换成linq 官网:https://dynamic-linq.net/ 【开源免费】 支持的方法详见:https://dynamic
阅读全文
摘要:一. 再探IQueryable 和 IEnumerable 1. 二者生成SQL的区别 普通集合的版本(IEnumerable)是在内存中过滤(客户端评估),而IQueryable版本则是把查询操作翻译成SQL语句,在DB中操作。 代码分享: { using var db = new EFCore6
阅读全文
摘要:一. 批处理-[Zack.EFCore.Batch] (一). 说明 1. 简介 (详细用法见GitHub:https://github.com/yangzhongke/Zack.EFCore.Batch) 【开源免费】 使用这个开发包, EFCore用户可以使用LINQ语句删除或者更新多条数据库记
阅读全文
摘要:一. EFCore6.0连接MySQL 1. 常用程序集 (1) MySql.EntityFrameworkCore : mysql官方出品,不开源,更新慢 (2) Pomelo.EntityFrameworkCore.MySql: 个人维护,开源,更新快,非常活跃 【推荐】 2. 代码实操 (1)
阅读全文
摘要:一. EFCore6.0反向测试 1. 需要的程序集 必须的程序集: Microsoft.EntityFrameworkCore.Tools EF自身的程序集:Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer
阅读全文
摘要:一. 说明 本节不单独整理了,官方文档写的非常好: https://docs.microsoft.com/zh-cn/ef/core/dbcontext-configuration/ 简单总结几点: 1. DBContext实例化的4种方式 (1). ConfigureService中注入,然后在控
阅读全文
摘要:一. 用法 1. 说明 关于该程序集详细的介绍、背景、原理,直接去看老杨自己的文章。(支持:SQLServer、MySQL、Oracle、Postgresql、Sqlite,EFCore必须5.0以上) 文章参考:https://www.bilibili.com/read/cv8545714 htt
阅读全文
摘要:一. 新功能(变化) 前置 参考官方文档: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
阅读全文
摘要:一. 说明 1. 环境准备 (1).测试载体:.Net 5.0 控制台 (2).数据库:MySQL 5.7 (事先改为大小写敏感 lower_case_table_names=0) (3).EFCore相关程序集:(这里统一用5.0.6 版本) Microsoft.EntityFrameworkCo
阅读全文
摘要:一. EFCore剖析 1. 过滤查询 eg:查询用户姓名中含有p字母的所有用户信息。 写法1:使用EF.Functions.Like var data1 = dbContext.T_UserInfor.Where(u => EF.Functions.Like(u.userName, "%p%"))
阅读全文
摘要:一. 分区、分表、分库 1. 分区 (1).含义 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的。 (2).常用到的指令: alter database <数据库名> add filegroup <文件组名> alter database <数据库名称> ad
阅读全文
摘要:1. OfType 获取集合中中指定类型元素。 object[] obj = { 1, 23, 4, 5, 555, "aaa", "bbb" }; int max = obj.OfType<int>().Max(); //结果是55, 获取int类型中的最大值 2. selectMany 相当于二
阅读全文