ASP.NET Core8.0学习笔记(二十六)——EF Core Include导航数据加载——显式加载

一、显式加载概述

1.应用场景:在前面使用Include方法加载依赖实体时,在加载主体实体时,依赖实体也会一并自动加载。但是某些时候我们只需要查询主体实体,没有必要加载依赖实体,或者说只有我们需要依赖实体时再去加载依赖实体。这就需要使用显式加载。

二、使用显式加载

1.直接查询主体实体实体,若不使用Include方法,则依赖实体不会被赋值,已经在第数据预加载一节中验证过。

2.若已经拿到了主体实体,在经过一系列操作后,若又需要加载对应的依赖实体,则需要使用DbContext.Entry(T Entity).Collection<TDependencyEntity >(Lambda).Load()来进行数据加载。注意此时使用显示加载数据库会执行多次加载,在第一次加载完主体实体后,再执行一次对依赖实体的加载。且每执行一次就会查一次数据库

运行:

三、显式加载数据过滤

1.使用显式数据加载,默认也会加载主体实体下的所有依赖实体。但是有时我们只需要加载我们所需要的数据。此时就需要使用Query()方法来获取支持查询的依赖实体数据结构,而不是Load()方法,Load()方法会加载所有数据且返回值为void,无法进行任何操作。使用Query()方法其返回值是IQueryable,其中T是导航属性的数据类型。以加载辽宁省下的地级市为例:

运行:

由于返回值为IQueryable的数据,所以还可以像普通的返回序列一样执行其他查询操作:

运行:

相关推荐
shi57832 分钟前
C# 常用的线程同步方式
开发语言·后端·c#
beijingliushao6 分钟前
32-Hive SQL DML语法之查询数据
数据库·hive·sql
JIngJaneIL38 分钟前
专利服务系统平台|个人专利服务系统|基于java和小程序的专利服务系统设计与实现(源码+数据库+文档)
java·数据库·小程序·论文·毕设·专利服务系统平台
__风__1 小时前
windows 上编译PostgreSQL
数据库·postgresql
木木子99991 小时前
数据库范式
数据库
涛思数据(TDengine)1 小时前
通过最严时序标准,再登产业图谱榜首,TDengine 时序数据库在可信数据库大会荣获双荣誉
大数据·数据库·时序数据库·tdengine·涛思数据
涛思数据(TDengine)2 小时前
新客户 | TDengine 时序数据库是怎么在钢厂“撬动”PI 的?
大数据·运维·数据库·时序数据库·tdengine
程序员柳2 小时前
基于Flask + Vue3 的新闻数据分析平台源代码+数据库+使用说明,爬取今日头条新闻数据,采集与清洗、数据分析、建立数据模型、数据可视化
数据库·数据分析·flask
哈基米喜欢哈哈哈3 小时前
Uber的MySQL实践(一)——学习笔记
数据库·笔记·后端·mysql
编程研究坊3 小时前
Neo4j APOC插件安装教程
数据库·人工智能·python·neo4j