You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用LINQ包含同一子集合的两个关联对象?

解决方案

要同时加载CollectionB关联的ObjectC和ObjectD,你需要针对每个子对象单独构建Include+ThenInclude的链,代码如下:

var a = _context.ModelA
    .Include(x => x.CollectionB).ThenInclude(x => x.ObjectC)
    .Include(x => x.CollectionB).ThenInclude(x => x.ObjectD);

说明

因为CollectionB是集合类型的导航属性,EF Core无法在一条ThenInclude里同时加载多个子关联对象,所以必须分别对每个需要加载的子对象(ObjectC和ObjectD)重复调用Include(x => x.CollectionB),再通过ThenInclude指向对应的子对象。

这样执行查询时,EF Core会一次性加载ModelA、关联的CollectionB集合,以及每个CollectionB实例关联的ObjectC和ObjectD。

内容的提问来源于stack exchange,提问作者Steve Schlichter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:15:33