废话不多说,上教程。 1.运行 "dotnet tool restore" 以使“dotnet-ef”命令可用。 cmd 管理员运行 命令 dotnet tool install --global dotnet-ef ×可能出错 1.1 检查当前dotnet版本,命令如下 dotnet --ve ...
dotnet10发布了,ef10也快发布了,但是还是只有批量更新(ExecuteUpdateAsync)和批量删除(ExecuteDeleteAsync)功能,没有批量插入。 今天给个办法,在不引用第三方库的情况下,巧妙利用ToQueryString()实现批插。 道理很简单,就是用efcore的T ...
本文基于efcore8.0,参考文档。 假设需要重写efcore或者特定数据库的方法的SQL转换,按上面文档及其示例代码,本例中我们大概就是提供下面几个接口的实现。 IMethodCallTranslator IMethodCallTranslatorPlugin IDbContextOptions ...
问题描述 当在 Entity Framework Core 中先删除实体、再修改其ID 、然后重新添加时发现的实体未被删除。 问题代码示例 using MediatR; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.D ...
1. 问题 达梦dotnet efcore的驱动DM.Microsoft.EntityFreameworkCore。 如果实体中存在DateTimeOffset类型字段时,查询报错:invalid cast from DateTime to DateTimeOffset。 Invalid cast ...
前言 NET程序员是很幸福的,MS在上个月发布了NET9.0RTM,带来了不少的新特性,但是呢,还有很多同学软硬件都还没跟上时代的步伐,比如,自己的电脑还在跑Win7,公司服务器还在跑MSSQL2005-2008的! 这不就引入了我们本文要探索的问题,因为MS早在EFcore3.1后就不再内置支持R ...
dynamic-linq.net,这个库大家都用过,简单说就是使用字符串编写查询表达式的,非常强大,因为字符串是可以运行时拼接的,所以就可以在运行时动态的构造查询,非常适合框架开发和需要灵活性的场景。 我用它解决了在原生代码非常困难且耗时(需要动态构造表达式)的功能,真正的直达痛点。 它dotnet ...
这里简单介绍下几种修改实体或者导航的跟踪状态。 1. 直接修改实体 对已在DbContext中跟踪的实体,直接操作,如给字段赋值、给导航属性赋值或者添加删除等 对未在DbContext中跟踪的实体,调用DbContext的Add、Update、Remove等方法,对已跟踪的实体也有效 需要注意所有添 ...
前言 数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的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 ...