前言 数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实现功能的同时控制这些S ...
前言 数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实现功能的同时控制这些S ...
前言 数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实现功能的同时控制这些S ...
项目准备 1、开发环境 vs2022 .NET6 2、创建项目 新建项目 ASP.NET Core Web API,解决方案名称:EFDBFirstDemo,项目名称:EFDBFirstDemo.API,选择.NET 6.0 解决方案=》新建项目=》类库,类库名称:EFDBFirstDemo.Mod ...
自己制作的一个基于Entity Framework Core 的数据库操作拦截器,可以打印数据库执行sql,方便开发调试,代码如下: /// <summary> /// EF Core 的数据库操作拦截器,用于在数据库操作过程中进行日志记录和监视。 /// </summary> /// <remar ...
最近看几个老项目的SQL条件中使用了1=1,想想自己也曾经这样写过,略有感触,特别拿出来说道说道。编写SQL语句就像炒菜,每一种调料的使用都会影响菜品的最终味道,每一个SQL条件的加入也会影响查询的执行效率。那么 1=1 存在什么样的问题呢?为什么又会使用呢? ...
Entity Framework Core 使用语言集成查询 (LINQ) 来查询数据库中的数据。 通过 LINQ 可使用 C#(或你选择的其他 .NET 语言)编写强类型查询。 它使用你派生得到的上下文和实体类来引用数据库对象。 EF Core 将 LINQ 查询的表示形式传递给数据库提供程序。 ...
EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步。至于我们应该选用哪个方法,请确定你是希望以 EF Core 模型为准还是以数据库为准。 如果希望以 EF Core 模型为准,请使用迁移。 对 EF Core 模型进行更改时,此方法会以增量方式将相应架构更改应用到数据库, ...
模型创建分为正向工程(CodeFirst)与反向工程(DbFirst). 正向工程的模型配置也可以创建任意的数据库关系对象,如:字段,字段说明,表,索引,外键等等。 可在派生上下文中替代 OnModelCreating 方法,并使用 ModelBuilder API 来配置模型。 此配置方法最为有效 ...
1. 快速入门 创建新的控制台项目 dotnet new console -o EFGetStarted cd EFGetStarted 安装 Entity Framework Core 要安装 EF Core,请为要作为目标对象的 EF Core 数据库提供程序安装程序包。 本教程使用 SQLit ...
需要有的知识点: c# 基础以及c#高级基础 Ado.net 基础 SqlServer 以及MySQL (都需要高级部分) Asp.net Mvc Core 基础 1. 新手的烦恼 (1) SQL 拼不对,错还不会找 (2) 开发效率低 (3) 如果发现字段需要重命名,得挨个地方去修改 (4) 老板 ...
前言 最近还在和 npgsql 与 EF Core 斗争,由于 EF Core 暂时还不支持 AOT,因此在 AOT 应用程序中使用 EF Core 时,会提示问题: 听这个意思,似乎使用 Compiled Model 可以解决问题,于是就又研究了一下 EF Core 的这个功能。 在 EF Cor ...
EF Core并发控制 并发控制概念 并发控制:避免多个用户同时操作资源造成的并发冲突问题。 最好的解决方案:非数据库解决方案 数据库层面的两种策略:悲观、乐观 悲观锁 悲观并发控制一般采用行锁 ,表锁等排他锁对资源进行锁定,确保同时只有一个使用者操作被锁定的资源。 EF Core没有封装悲观并发控 ...
**背景** 小编最近接到一个任务,批量获取内部网站用TXT生成的日志,在闲时把日志插入到MySql数据库做分析。为了快速开发小编选择了Entity Framework Core,很快开发完成了。测试数据不是很多,批量插入数据很快完成,效率很高。但是部署到线上问题来了,最开始也挺快,越到后面越慢,慢 ...
# 关于EF Core更新速度随时间越来越慢的解决办法 ## 概要 本篇主要介绍使用 `context.ChangeTracker.Clear() `方法,在通过循环进行批量更新时,通过手动清除跟踪实体以提高性能的示例。 ## 背景 最近在做一些数据分析时,遇到了一个问题,当我把计算结果更新到数据库 ...
起因: 之前版本vs2022生成EF模型一直没有问题,在更新了最新的vs2022之后,版本号17.6+,出现此问题: 正在运行转换:System.NullReferenceException:未将对象引用设置到对象的实例。 具体错误如下: 正在运行转换: System.NullReferenceEx ...
EF命令行工具 migrate.exe 进行Code First更新数据库,6.3+使用ef6.exe 使用EF的Code First迁移可以用于从Visual Studio内部更新数据库,但也可通过命令行工具 migrate.exe 进行执行。 如果项目已经更新到服务器,后面的更新数据库分为两种办 ...
性能调优——EFCore调优 按下硬件、网络不提,我们单表从程序层面对系统的性能进行优化,翻来覆去无外乎三个方面 缓存 异步 sql本片文章,我们针对.net core web项目的ef core框架进行性能优化。 1. EF Core框架已经本地缓存机制memorycache,所以我们访问一个接口 ...
dotnet ef是Entity Framework Core(EF Core)的一个命令行工具,用于管理EF Core应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnet ef还可以生成和管理实体和上下文代码。本文将介绍如何使用dotnet ef动态生成代码。 一、环境准备 1、项目 ...
我习惯性使用OData,它的$expand与层级查询非常好用,这个功能非常依赖于数据库的导航属性,也就是外键结构。最近想着把一个单体的系统拆分为多个小系统,首先需要处理外键依赖的问题。 多个服务各自有各自的数据库,数据库层面并不互通,也就无法使用外键约束。 我使用EF Core来描述数据库的结构,有 ...