ASP.NET Core8.0學習筆記(二十五)——EF Core Include導航數據加載之預加載與過濾

一、導航屬性數據加載

1.在EF Core中可以使用導航屬性來加載相關實體。
2.加載實體的三種方式:
(1)預先加載:直接在查詢主體時就把對應的依賴實體查出來(作為初始查詢的一部分)
(2)顯式加載:使用代碼指示稍后顯式的從數據庫中加載數據
(3)延遲加載:在訪問導航屬性時,以透明的方式加載關聯數據

二、數據預加載

1.關聯查詢:直接使用導航屬性就可以訪問關聯數據,但是不能直接以“.”去調用導航屬性的數據,否則會報錯,如示例代碼所示:
在這里插入圖片描述
運行:
在這里插入圖片描述

原因是這里的導航屬性Post只是起到一個完成約定配置的作用,其本身在主體數據加載時并不會自動加載關聯數據。
要通過導航屬性來訪問數據,需要在DbSet的Include()方法來加載子數據。Include()接收兩種與導航屬性相關的參數。第一種是要加載的導航屬性名的字符串,第二種是直接通過Lambda表達式來進行加載:
Lambda:
在這里插入圖片描述

屬性字符串:
在這里插入圖片描述

運行:
在這里插入圖片描述

2.多層級數據訪問:可以通過多次調用Include()方法實現深層數據加載,以省市縣數據為例:
省:
在這里插入圖片描述

市:
在這里插入圖片描述

縣區:
在這里插入圖片描述

在程序中使用Include與ThenInclude來實現多層級的數據加載:
在這里插入圖片描述

運行:
在這里插入圖片描述

注意:使用Include加載數據只是指定在加載主體的時候把依賴實體一并帶出來并賦值,返回的實體依舊是最開始指定的DbSet。例如上面返回的就還是Province省,但是省內的市級與縣級數據也會被一并查詢出來。

三、使用Include進行數據過濾

1.在使用Include進行數據加載時,默認會加載主體實體所包含的所有依賴實體。但是某些時候我們不需要查詢出所有的依賴實體,而是只需要加載我們感興趣的數據即可。
例如,在上面的省-市-縣三級聯動查詢中,假如我只想查詢遼寧省大連市的所有數據,那么就需要在調用Include()時指定數據過濾。否則它將會加載整個遼寧省的數據。
2. 在調用Include()方法時,可以使用Where等方法進行數據過濾,同時可以對依賴實體進行排序等操作。
在這里插入圖片描述

運行:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62496.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62496.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62496.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 基礎環境的開發工具以及使用(下)

1. make / Makefile 自動化構建的工具 1)引入 在我們進行一些大型的工程的時候,代碼量是極其大,當我們代碼在進行一系列的編譯的時候,難免會出現一些錯誤,當我們對錯誤進行一系列的更改之后,難道我們需要…

沃豐科技智能客服在跨境電商獨立站中的核心角色

隨著全球化進程的加速和互聯網技術的不斷發展,跨境電商行業蓬勃興起,為消費者提供了更廣闊、更便捷的購物選擇。在這樣一個競爭激烈的市場環境中,優質的客戶服務成為了企業脫穎而出的關鍵。沃豐科技智能客服憑借其先進的技術和人性化的設計理…

uniapp 彈出軟鍵盤后打開二級頁面,解決其UI布局變動

軟鍵盤彈出,此時點擊某按鈕打開二級頁面,position:fixed 位于底部的按鈕不見了(通過加高其區域,發現被下移動了),什么原因不清楚? 但是發現是軟鍵盤彈出導致,問題解決通過隱藏鍵盤再打開二級頁…

Centos7下搭建Prometheus+Grafana監控

Prometheus 監控 Prometheus 監控系統的架構包括以下組件: Prometheus Server: Prometheus 服務器是監控系統的核心組件,負責收集、存儲和處理指標數據。它定期從各種數據源(如 Exporter、Agent 等)拉取指標數據&…

MyBatis-Plus(為簡化開發而生)

一、MyBatis-Plus概述 官網: baomidou.com MyBatis-Plus(簡稱 MP) 在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。 (1)單表操作 不需要編寫sql語句,封裝方法,…

深入解析 C++11 的 `std::atomic`:誤區、性能與實際應用

在現代 C 開發中,std::atomic 是處理多線程同步時的重要工具之一。它通過提供原子操作保證了線程安全,但在實際使用時卻隱藏著許多不為人知的陷阱和性能影響。本篇文章將帶你深入理解 std::atomic 的使用方式、潛在問題,以及如何正確應用于多…

芋道源碼,芋道sql,yudao,yudao-vue-pro拒絕割韭菜

芋道的開發指南實際上只需要小小的操作就可以觀看啦 為了避免被割韭菜 我們可以使用插件去進行解鎖文檔 項目地址 otomayss/free-yd (github.com)[這里是圖片002]https://github.com/otomayss/free-yd

Mac軟件推薦

Mac軟件推薦 截圖SnipasteXnipBob 快捷啟動Raycast 系統檢測Stats 解壓縮The UnarchiverKeka(付費) 視頻播放IINA 視頻下載Downie(付費) 屏幕劉海TopNotchMediaMate(付費)NotchDrop(付費&#x…

【ETCD】【源碼閱讀】 深入解析 raftNode.start`函數:Raft 核心啟動邏輯剖析

raftNode.start方法 是 etcd 中 Raft 模塊的核心啟動點,其職責是管理 Raft 狀態機的狀態變遷、日志處理及集群通信等邏輯。通過對源碼的逐行分析,我們將全面揭示其運行機制,探討其設計背后的分布式系統理念。 函數核心結構 raftNode.start 方…

車站值班員題庫

1. 聯系用手信號顯示十、五、三車距離信號中的“三車”(約33m)信號時,晝間的顯示方式為展開的綠色信號旗單臂平伸下壓 ( 一 )次。J442 2. 聯系用手信號顯示股道號碼時,晝間右臂向上直伸&#xff0c…

BI中場戰事:國外廠商退,國產廠商進

從沉睡的黃金到經濟的新寵,數據要素正上演華麗轉身。 近年來,數字經濟的長驅向前,離不開數據要素價值釋放所帶來的持續動力。作為第五大生產要素,數據要素的價值釋放需要從數據采集、傳輸到存儲、治理,再到分析和可視…

2024年華中杯數學建模C題基于光纖傳感器的平面曲線重建算法建模解題全過程文檔及程序

2024年華中杯數學建模 C題 基于光纖傳感器的平面曲線重建算法建模 原題再現 光纖傳感技術是伴隨著光纖及光通信技術發展起來的一種新型傳感器技術。它是以光波為傳感信號、光纖為傳輸載體來感知外界環境中的信號,其基本原理是當外界環境參數發生變化時&#xff0c…

【LeetCode每日一題】LeetCode 209.長度最小的子數組

LeetCode 209.長度最小的子數組 題目描述 給定一個正整數數組 nums 和一個正整數 target,找出連續子數組的最小長度,使得子數組的和大于或等于 target。如果不存在符合條件的子數組,返回 0。 Java 實現代碼 public class Solution {publi…

【openwrt】openwrt-21.02 基于IP地址使用ipset實現策略路由操作說明

openwrt版本信息 DISTRIB_ID=OpenWrt DISTRIB_RELEASE=21.02-SNAPSHOT DISTRIB_REVISION=r0-6bf6af1d5 DISTRIB_TARGET=mediatek/mt7981 DISTRIB_ARCH=aarch64_cortex-a53 DISTRIB_DESCRIPTION=OpenWrt 21.02-SNAPSHOT r0-6bf6af1d5 DISTRIB_TAINTS=no-all busybox override …

【H2O2|全棧】MySQL的基本操作(三)

目錄 前言 開篇語 準備工作 案例準備 多表查詢 笛卡爾積 等值連接 外連接 內連接 自連接 子查詢 存在和所有 含于 分頁查詢 建表語句 結束語 前言 開篇語 本篇繼續講解MySQL的一些基礎的操作——數據字段的查詢中的多表查詢和分頁查詢,與單表查詢…

從單體到微服務:如何借助 Spring Cloud 實現架構轉型

一、Spring Cloud簡介 Spring Cloud 是一套基于 Spring 框架的微服務架構解決方案,它提供了一系列的工具和組件,幫助開發者快速構建分布式系統,尤其是微服務架構。 Spring Cloud 提供了諸如服務發現、配置管理、負載均衡、斷路器、消息總線…

yarn : 無法加載文件 C:\Users\L\AppData\Roaming\npm\yarn.ps1,因為在此系統上禁

關于執行安裝yarn命令后執行yarn -v報錯: 先確認執行安裝yarn命令是否有誤 # 安裝yarn npm install yarn -g 終端輸入set-ExecutionPolicy RemoteSigned 當然如果yarn -v仍然執行失敗,考慮使用管理員方式運行IDEA, 注:如上操作…

centos 常見問題處理

免密登錄配置 # 在當前機器下 執行命令 生成 私鑰和公鑰 ~/.ssh 目錄下 ssh-keygen -t rsa # 執行如下命令 把公鑰 放到 對應機器上的 ~/.ssh/authorized_keys ssh-copy-id 172.17.68.220 # 如此 兩臺機器兩兩配置 centos ssh連接慢 vim /etc/ssh/sshd_config # UseD…

java全棧day12-后端Web實戰(IOC+DI)

前言:前面的基礎知識了解后進入實戰篇,從以下四個方面進行準備 一、開發規范 1.1前后端分離開發 前言回顧 二、Restful風格 引言:前端與后端在進行交互的時候,所使用的url風格叫Restful。 2.1概述 小結 2.2環境準備 2.2.1apif…

鏈式設計模式——裝飾模式和職責鏈模式

一、裝飾模式 1、概述 動態地給一個對象添加一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。 ConcreteComponent :是定義了一個具體的對象,可以給這個對象添加一些職責;Decorator :裝飾抽象…