刷新
论如何直接用EF Core实现创建更新时间、用户审计,自动化乐观并发、软删除和树形查询(下)

博主头像 前言 数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实现功能的同时控制这些S ...

论如何直接用EF Core实现创建更新时间、用户审计,自动化乐观并发、软删除和树形查询(中)

博主头像 前言 数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实现功能的同时控制这些S ...

论如何直接用EF Core实现创建更新时间、用户审计,自动化乐观并发、软删除和树形查询(上)

博主头像 前言 数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实现功能的同时控制这些S ...

SQL中为什么不要使用1=1?

博主头像 最近看几个老项目的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 来配置模型。 此配置方法最为有效 ...

第二单元 EFCore 入门

博主头像 1. 快速入门 创建新的控制台项目 dotnet new console -o EFGetStarted cd EFGetStarted 安装 Entity Framework Core 要安装 EF Core,请为要作为目标对象的 EF Core 数据库提供程序安装程序包。 本教程使用 SQLit ...

第一单元 ORM 介绍

博主头像 需要有的知识点: c# 基础以及c#高级基础 Ado.net 基础 SqlServer 以及MySQL (都需要高级部分) Asp.net Mvc Core 基础 1. 新手的烦恼 (1) SQL 拼不对,错还不会找 (2) 开发效率低 (3) 如果发现字段需要重命名,得挨个地方去修改 (4) 老板 ...

EF Core预编译模型Compiled Model

博主头像 前言 最近还在和 npgsql 与 EF Core 斗争,由于 EF Core 暂时还不支持 AOT,因此在 AOT 应用程序中使用 EF Core 时,会提示问题: 听这个意思,似乎使用 Compiled Model 可以解决问题,于是就又研究了一下 EF Core 的这个功能。 在 EF Cor ...

EF Core并发控制

博主头像 EF Core并发控制 并发控制概念 并发控制:避免多个用户同时操作资源造成的并发冲突问题。 最好的解决方案:非数据库解决方案 数据库层面的两种策略:悲观、乐观 悲观锁 悲观并发控制一般采用行锁 ,表锁等排他锁对资源进行锁定,确保同时只有一个使用者操作被锁定的资源。 EF Core没有封装悲观并发控 ...

.NET使用EF批量插入数据,一行代码性能飙升!

博主头像 **背景** 小编最近接到一个任务,批量获取内部网站用TXT生成的日志,在闲时把日志插入到MySql数据库做分析。为了快速开发小编选择了Entity Framework Core,很快开发完成了。测试数据不是很多,批量插入数据很快完成,效率很高。但是部署到线上问题来了,最开始也挺快,越到后面越慢,慢 ...

关于EF Core 更新速度随时间越来越慢的解决办法

博主头像 # 关于EF Core更新速度随时间越来越慢的解决办法 ## 概要 本篇主要介绍使用 `context.ChangeTracker.Clear() `方法,在通过循环进行批量更新时,通过手动清除跟踪实体以提高性能的示例。 ## 背景 最近在做一些数据分析时,遇到了一个问题,当我把计算结果更新到数据库 ...

efcore性能调优

性能调优——EFCore调优 按下硬件、网络不提,我们单表从程序层面对系统的性能进行优化,翻来覆去无外乎三个方面 缓存 异步 sql本片文章,我们针对.net core web项目的ef core框架进行性能优化。 1. EF Core框架已经本地缓存机制memorycache,所以我们访问一个接口 ...

.NET使用一行命令轻松生成EF Core项目框架

博主头像 dotnet ef是Entity Framework Core(EF Core)的一个命令行工具,用于管理EF Core应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnet ef还可以生成和管理实体和上下文代码。本文将介绍如何使用dotnet ef动态生成代码。 一、环境准备 1、项目 ...

外键拆分手记

博主头像 我习惯性使用OData,它的$expand与层级查询非常好用,这个功能非常依赖于数据库的导航属性,也就是外键结构。最近想着把一个单体的系统拆分为多个小系统,首先需要处理外键依赖的问题。 多个服务各自有各自的数据库,数据库层面并不互通,也就无法使用外键约束。 我使用EF Core来描述数据库的结构,有 ...