首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

03-EF Core笔记之查询数据

服务 EF Core支持部分查询在客户端进行、部分查询发送到服务,此种情况下可能会造成性能问题。...当发生客户端筛选数据时候,EF Core会发出警告,也可以配置当发生客户端筛选时抛出异常: protected override void OnConfiguring(DbContextOptionsBuilder...在执行查询时,EF Core检查我们sql语句是否支持拼接,如果支持情况下,则会将linq过滤语句拼接为sql一并发送到数据库进行查询。 跟踪 原始SQL跟踪与Linq查询跟踪方式一致。...关联数据 原始SQL查询关联数据方式与Linq查询关联方式一致。 全局筛选 全局筛选对于软删除和多租户非常有用。...p.IsDeleted); } 我们可以在特定查询禁用全局筛选: blogs = db.Blogs .Include(b => b.Posts) .IgnoreQueryFilters

2.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

2022年了有哪些值得推荐.NET ORM框架?

EF/EF Core Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版常用 Entity Framework 数据访问技术,EF Core 是适用于 .NET 现代对象数据库映射...官方文档教程:https://docs.microsoft.com/zh-cn/ef/ GitHub地址:https://github.com/dotnet/efcore 以下是EF/EF Core相关拓展程序包...您查询由 C# 编译检查并允许轻松重构。 但是,它不像 LINQ to SQL 或实体框架那么重。...这种方法更容易推理您数据访问,从而清楚地知道什么 SQL 在什么时间执行,同时减轻意外行为、隐式 N+1 查询和重对象关系映射 (ORM) 普遍存在泄漏数据访问。...主要特点: 非常容易与现有项目集成并在所有 .NET 平台上运行。 SQLite 上瘦包装,快速高效。(这个库不应该是您查询性能瓶颈。)

5.8K11

02-EF Core笔记之保存数据

Blog引用设置为null即可,此时EF Core将判断是否为必须关系,如果为必须关系,则从数据库删除Post对象,如果为非必须关系,则将数据库对应外键设置为null。...在关系数据库上,EF Core 会对任何 UPDATE 或 DELETE 语句 WHERE 子句中并发令牌值进行检查。 执行这些语句后,EF Core 会读取受影响行数。...除此之外,如果实体使用自动生成主键,EF Core则可以通过判断主键是否为默认值(null、0)来判断是新增或更新。...并且,对于这种情况,可直接使用DbContextUpdate操作进行,在Update操作内部会完成该判断。 如果实体主键不是自动生成,则需要手工判断实体是否存在。...一种可用方案是采用软删除,将数据标记为已删除,此时操作与更新相同。然后在查询数据时,使用查询筛选,将标记为已删除数据过滤掉,从而达到删除效果。

1.7K40

使用 EF Core PostgreSQL JSONB

SELECT details->'specs' FROM products; 过滤数据 “@>”运算符检查左侧 JSONB 值是否包含顶层右侧 JSONB 路径/值条目。...SELECT * FROM products WHERE details->'colors' @> '["red"]'; 在属性上使用 IN 运算符 检查 jsonb 属性是否在一组值。...其中一个功能是对 JSONB 支持,这是 PostgreSQL 一种 JSON 二进制格式。 定义实体 我们主要实体是产品,代表我们库存商品。...**数据库迁移:**EF Core 将在迁移中将 JSONB 列作为字符串 (nvarchar(max)) 类型进行处理。 **透明使用:**在 EF Core 无缝使用 JSONB 支持属性。...结论 PostgreSQL JSONB 与 EF Core 集成为在关系数据库上下文中处理复杂、嵌套和动态数据结构提供了可靠解决方案。

13110

.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记

2.4.5 EF Core -- 查询 关联数据加载 客户端与服务端运算 跟踪与不跟踪 复杂查询运算 原生 SQL 查询 全局查询筛选 关联数据加载 学员和助教都在项目分组,调整模型,删除 Assistant...EF Core 为我们提供了三种加载数据方式 预先加载 显式加载 延迟加载 加载相关数据:https://docs.microsoft.com/zh-cn/ef/core/querying/related-data...查询所有其余部分是在数据库评估,但通过此方法传递返回 URL 却是在客户端上完成。.../core/querying/tracking 默认情况下,跟踪返回实体类型查询。...(); 全局查询筛选 全局查询筛选:https://docs.microsoft.com/zh-cn/ef/core/querying/filters modelBuilder.Entity<Blog

1.2K10

.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记

2.4.5 EF Core -- 查询 关联数据加载 客户端与服务端运算 跟踪与不跟踪 复杂查询运算 原生 SQL 查询 全局查询筛选 关联数据加载 学员和助教都在项目分组,调整模型,删除 Assistant...Core 为我们提供了三种加载数据方式 预先加载 显式加载 延迟加载 加载相关数据:https://docs.microsoft.com/zh-cn/ef/core/querying/related-data...查询所有其余部分是在数据库评估,但通过此方法传递返回 URL 却是在客户端上完成。.../core/querying/tracking 默认情况下,跟踪返回实体类型查询。...(); 全局查询筛选 全局查询筛选:https://docs.microsoft.com/zh-cn/ef/core/querying/filters modelBuilder.Entity<Blog

1.2K11

2022年了有哪些值得推荐.NET ORM框架?

官方文档教程:https://docs.microsoft.com/zh-cn/ef/ GitHub地址:https://github.com/dotnet/efcore 以下是EF/EF Core相关拓展程序包...SmartSql 借鉴了 MyBatis 思想,使用 XML 来管理 SQL ,并且提供了若干个筛选标签来消除代码层面的各种 if/else 判断分支。...您查询由 C# 编译检查并允许轻松重构。 但是,它不像 LINQ to SQL 或实体框架那么重。...这种方法更容易推理您数据访问,从而清楚地知道什么 SQL 在什么时间执行,同时减轻意外行为、隐式 N+1 查询和重对象关系映射 (ORM) 普遍存在泄漏数据访问。...主要特点: 非常容易与现有项目集成并在所有 .NET 平台上运行。 SQLite 上瘦包装,快速高效。(这个库不应该是您查询性能瓶颈。)

3.8K20

Entity Framework Core 2.0 新特性

ef core 2.0 ,我们将自定义DbContext类型注册到DbContextPool服务,可让该数据库上下文类型实例重复使用。...DbContext实例时,首先会检查是否在DbContextPool存在该类型实例,当一次请求结束后,任何状态DbContext实例都会被重置,且将自身加入到DbContextPool。   ...但是由于它不能被CLR类型识别,所以必须从另一个实体类型导航到它。包含定义导航实体所有者。当查询所有者时,默认将包含所属类型。   ...目前只支持标量函数 EF Core迁移将不负责创建它,您必须在数据库创建映射函数 九.code first 实体配置   在EF6可以通过 EntityTypeConfiguraiton 封装特定实体类型配置代码...,在EF Core2.0,这个特性回来了(EF Core 之前 core版本不支持)。

1.9K50

Entity Framework Core 2.0 新特性

包含定义导航实体所有者。当查询所有者时,默认情况下将包含所有类型。 按照惯例,将为所属类型创建一个影子主键,并通过使用表分割将其映射到与所有者相同表。...使用所属类型与EF6使用复杂类型类似,(PS:这里解释一下EF6复杂类型,复杂类型是允许在实体组织标量属性实体类型非标量属性。像实体一样,复杂类型由标量属性或其他复杂类型属性组成。)...,EF Core迁移不会对其进行创建 2.性能提升方面 2.1DbContext连接池 在ASP.NET Core程序我们使用EF Core一般都是将自定义DbContext类型注册到依赖注入系统,...然后通过控制构造函数参数获取该类型实例。...DbContext实例时,将首先检查池中是否有可用实例。

3.8K90

在Entity Framework中使用存储过程(三):逻辑删除实现与自增长列值返回

当你进行数据查询时候,如果没有显式设置IS_DELETED=0为筛选条件情况下,所有被“删除”记录依然会被返回。...实际上EF为你考虑到了这一点,你可以在直接通过EF设计设置这样一个筛选条件。...在当前实体被选中情况下,进入Mapping Details界面,你会发现在于数据库表映射中具有一个下拉框,通过该下拉框你可以设置基于数据库表相关筛选条件。...并在删除前后根据ID获取对应记录,打印出来以验证上面设计筛选条件是否真的有效。...三、具有自增长列存储过程定义 接下来我们来讨论另一个常见场景:如果一个表存在一个自增长列作为该表主键,当我们通过提交对应实体对象进行记录添加操作时,数据库真正键值如何返回并赋值给该实体对象

1.7K80

Asp.NET Core2.0 项目实战入门视频课程_完整版

课程概述 52ABP大学例子程序演示如何使用Entity Framework(EF) Core 2.0 和 Visual Studio 2017 创建一个 ASP.NET Core 2.0 MVC web...(常年搬砖,苦于没有对新技术了解朋友们) .NET CORE版本 目前适用是.Net Core2.0.3,会持续更新,如果.NET Core出到了3.0我也会出相关课程信息更新到3.0。...00:05:04 5、跨站请求伪造简析及来自Fiddler攻击00:13:15 6、csrf学习推荐资料00:01:05 7、修改和删除功能00:14:39 8、完善关于学生表修改和删除00:04...:59 第4章Devops开始-差异化发布,将项目发布到Azure 1、使用Azure作为52abp载体00:16:04 第5章排序、搜索、分页、分组 1、使用EFCore进行排序和筛选功能开发可试听整节...00:35:14 2、分页和分组功能实现00:35:18 3、统计学生信息00:15:29 4、EF迁移文件生成两种方式(CLI和PMC)00:17:07 第6章复杂数据类型实践 1、使用Dto来替代实体做验证

2.6K110

ASP.NET Core 性能最佳做法(上)

【.NET】| 作者/Mike Rousos 本文来自Microsoft Docs官方文档,提供了ASP.NET Core性能最佳做法准则。 1充分利用缓存 缓存在本文档多个部分中进行了讨论。...可以通过在 PerfView 查看垃圾回收 (GC) 统计信息并检查以下内容来诊断内存问题(如前面的问题): 垃圾回收暂停时间。 花费在垃圾回收上处理时间百分比。...当出于只读目的访问数据时,请在Entity Framework Core中使用无跟踪查询。EF Core可以更有效地返回无跟踪查询结果。...请筛选和聚合 LINQ 查询(例如使用 、.Select 或 .Sum 语句),以便数据库执行筛选。 请考虑 EF Core 会在客户端上解析一些查询运算符,这可能会导致查询执行效率低下。...有关详细信息,请参阅相关子查询优化。 请参阅 EF 高性能,以了解可提高大规模应用性能方法: DbContext 池 显式编译查询 建议在提交基本代码之前衡量前面高性能方法影响。

1.5K20

基于ABP落地领域驱动设计-02.聚合和聚合根最佳实践和原则

聚合 正如前面所讲,一个聚合是一系列对象(实体和值对象)集合,通过聚合根将所有关联对象绑定在一起。本节将介绍与聚合相关最佳实践和原则。...对于习惯使用 EF Core 和 关系数据开发者来说,这看起来似乎有些奇怪。获取 Issue 所有数据是没有必要且低效。为什么我们不直接执行一个SQL插入命令到数据库,而不查询任何数据呢?...用于 EF Core 和 关系型数据库 在 MongoDB ,自然不适合有这样导航属性/集合。...然而,EF Core 和关系型数据库开发者可能会发现这个限制性规则是不必要,因为 EF Core 可以在数据库读写处理它。...如果我们用 public 设置声明所有的属性,就像上面的Issue类属性例子,我们就不能在实体生命周期中强制保持其有效性和完整性。

2.9K30

EntityFramework Core 学习扫盲

写在前面 本篇文章虽说是入门学习,但是也不会循规蹈矩地把EF1.0版本一直到现在即将到来EF Core 2.0版本相关所有历史和细节完完整整还原出来。...假如导航属性存在对其他实体引用,那么即便不把被引用实体配置为显式引用,被引用实体也可以隐式地映射到数据库。 如以下代码所示。...主键 默认情况下,EF CORE会将实体命名为Id或者[TypeName]Id属性映射为数据库表主键。当然有些开发者不喜欢将主键命名为Id,EF CORE也提供了两种方式进行主键相关设置。...备用键 Alternate Keys是EF CORE引入新功能,EF 6.X版本并没有此功能。备用键可以用作实体除主键和索引外唯一标识符,还可以用作外键目标。...在Fluent Api,有两种方法可以指定备用键,一种是当开发者将实体属性作为另一个实体外键目标,另一种是手动指定。EF CORE默认约束是前者。

9.5K90

EF Core 数据验证

但是在 Entity Framework Core (以下简称 EF Core这些问题全可以解决。在 EF Core 中有两种验证模式,分别是内置模型验证和第三方扩展模型验证。...下面我们就通过数据注解验证来验证刚才添加特性。...在业务代码我们调用前面定义 ExecuteValidation 方法进行验证,如果验证通过就调用 EF Core SaveChange() 方法,如果未通过就调用相应处理代码,代码片段如下:....WithMessage("姓名长度在5字节"); } } 上述代码进行了两个验证,一个是验证 Name 字段是否为空,另一个是验证 Name 字段长度,其中我们通过 MaximumLength...二、总结 本篇文章讲解了 EF Core 数据验证方法,虽然讲EF Core 方法,但是同样也适用于 EF6 ,这些内容是常用,上述部分代码可以在大部分项目中通用。

1.2K20

解决因C#8.0语言特性导致EFCore实体类型映射错误

通过查看EF文档了解到,可为空引用类型通过以下方式影响 EF Core 行为: 如果禁用可为空引用类型,则按约定将具有 .NET 引用类型所有属性配置为可选 (例如 string ) 。...换而言之,启用了该功能后,把原本《引用类型可为空》这个传统约定,更改称为了《引用类型是否可为空,是通过?语法来表明》,实体string类型属性在C#作为引用类型,自然而然地受到了这个影响。...后记 语言特性会影响EF实体与表结构映射约定,官方示例对于string类型处理方式也做了说明: 无NRT public class CustomerWithoutNullableReferenceTypes...之后应留意项目的"NRT"功能是否开启,在解决方案.csproj文件中用如下方式关闭 disable 留意实体是否有代码段被标识"NRT"功能开启 从 .NET...原始项目是.NET 5.0升级而来,所以项目文件并不会包含Nullable相关配置。 为了一行bug,好值得一个下午呢

19420

.NET Core 3.0 新变化

版本 1 随附新版 ASP.NET、实体框架 (EF) 和主要定目标到 Web 应用程序。...此模型优点有多个:下载大小更小、代码集中在服务上,以及受益于在 .NET Core 上运行组件所有功能和性能优势。 ?...EF Core 3.0 LINQ 是一项用户钟爱 .NET 功能,可便于编写数据库查询,而无需离开所选语言,同时还能利用丰富类型信息来获取 IntelliSense 和编译时类型检查。...我们计划在 EF Core 3.0 添加其他功能包括,属性包实体(将数据存储在索引属性(而不是常规属性)实体);能够将数据库视图反向工程为查询类型;以及与新 C# 8.0 功能集成,如 IAsyncEnumerable...Span 是 .NET Core 2.1 与性能最为相关改进核心。因为它允许以更高效方式管理缓冲,所以可以有助于减少分配和复制。

4.9K10

【ASP.NET Core 基础知识】--数据库连接--使用Entity Framework Core进行数据库访问

在 Entity Framework CoreEF Core,ORM 概念依然适用,EF Core 提供了 ORM 功能,允许开发者使用 .NET 类型(如类和对象)来表示数据库表格和数据,...4.2 事务管理 在 Entity Framework CoreEF Core,事务管理允许开发者对一组相关数据库操作进行原子性处理,这意味着这些操作要么全部成功,要么全部回滚到最初状态。...预加载相关实体:在查询时,通过使用Include或Explicit Loading来预加载相关实体,减少多次查询数据库需要。...避免N+1查询问题:通过预加载相关实体来避免N+1查询问题,这是性能优化一个常见问题。...另外,需要注意是,EF Core 跨数据库操作功能可能并不完善,与单个数据库操作相比,性能也可能有所下降。在设计应用程序时,应当仔细评估是否真的需要跨数据库操作,并考虑其潜在复杂性和性能影响。

17400
领券