随笔分类 - SQL/NOSQL/EFCore/Dapper
数据库和ORM
摘要:本节内容,为补充内容,部分类型涉及5.1和5.2,P129-P134。主要NuGet包: 一、实体更改跟踪 EFCore默认采用“快照更改跟踪”,会对“通过DbContext上下文查询出来的所有实体对象”进行跟踪,首次跟踪时,EFCore会为每个实体创建快照。通过对比当前值和快照值,就可以确定实体的
阅读全文
摘要:本节内容,部分为补充内容,部分涉及到5.2(P131-133)。主要NuGet包:如前章节所述 仓储模式,将数据访问层抽象出来,隐藏了底层对数据源的CRUD操作,这样在应用层或控制器中,我们直接访问仓储封装的方法即可,不需和数据源直接接触。泛型仓储以面向接口和泛型方式实现,一方面,可以非常方便的更换
阅读全文
摘要:本节内容,部分为补充内容。主要NuGet包: Dapper(Dapper操作数据库) System.Data.SqlClient(连接数据库) Microsoft.EntityFrameworkCore.SqlServer(ORM的SqlServer数据库提供者) Microsoft.EntityF
阅读全文
摘要:本节内容,涉及4.5(P96-P97)、5.2(P131-P141)。主要NuGet包:如前章节所述 一、查看SQL语句,调试LINQ语句 //在DbContext类的OnConfiguring方式中,增加显示SQL的配置。即可在控制台中查询生成的SQL public class MyDbConte
阅读全文
摘要:本节内容,涉及5.3(P142-P153)。主要NuGet包: ExpressionTreeToString(用于以string格式,输出表达式树) System.Linq.Dynamic.Core(通过字符串形式,非常简单的构建表达式树,可以不用自己构建表达式树) 一、Expression(表达式
阅读全文
摘要:本节内容,涉及4.6(P116-P130)。主要NuGet包:如前述章节 一、LINQ和EFCore的集合查询扩展方法的区别 1、LINQ和EFCore中的集合查询扩展方法,虽然命名和使用完全一样,都两者定义在不同的命名空间下,是不同的方法。PS:LINQ定义在System.Linq中,EFCore
阅读全文
摘要:本节内容,涉及4.6(P84-P92)。主要NuGet包:如前述章节 一、配置映射关系,有两种方案,一是Data Annotation、二是如2.3节使用的Fluent Api,推荐使用Fluent Api。 二、Fluent Api的基本配置 //以下案例都在DbContext的OnModelCr
阅读全文
摘要:本节内容,涉及4.6(P100-P114)。主要NuGet包: Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools 一、一对多关系-双向导航(主从表) 1 //实体类Article和Comment,在
阅读全文
摘要:本节内容,涉及4.2(P75-P83)、7.3(P193-P197)。主要NuGet包: Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore
阅读全文
摘要:本节内容,涉及2.3(P40-P51)。主要NuGet包:无 一、常用LINQ方法 1 //测试数据,Employee类型为record 2 //public record Employee(int Id, string Name, int Age, bool Gender, double Sala
阅读全文