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

Linq使用Include加载关联属性时如何同时加载Contact的Role与Company属性

解决方案

你只需要额外添加一条关联加载链指定加载Contact下的Company属性即可,EF Core支持同时声明多个关联加载路径,所有显式指定的导航属性都会被正确加载。

写法1:兼容所有EF Core版本

query = db.Persons.Include(entity => entity.ContactRelations)
                .ThenInclude(relation => relation.Contact)
                .ThenInclude(contact => contact.Role)
           .Include(entity => entity.ContactRelations)
                .ThenInclude(relation => relation.Contact)
                .ThenInclude(contact => contact.Company);

写法2:EF Core 5.0及以上版本支持的简化写法

EF Core 5.0 新增了同层级导航属性并行加载的语法,不需要重复写上层关联路径:

query = db.Persons.Include(entity => entity.ContactRelations)
                .ThenInclude(relation => relation.Contact)
                    .Include(contact => contact.Role)
                    .Include(contact => contact.Company);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:06:04