我有这个类,其中包含对象 ConversieDetail 的列表public class ConversieRun{ [Key] public String Guid { get; set; } public String Naam { get; set; } public String Status { get; set; } public DateTime Start { get; set; } public DateTime? Einde { get; set; } public List<ConversieDetails> Details { get; set; }}使用以下方法,我需要返回 ConversieRun 列表,包括 ConversieDetailspublic List<PGData.ConversieRun> GetAll(){ //var result = _context.CoversieDetails.ToList(); return _context.ConversieRun.ToList(); }但是,当我返回上面的示例时,conversieDetail List 为空。现在,当我取消注释结果列表时,conversieDetails 列表将按预期填充到 ConversieRun 对象中。如果我没有在另一个列表中首先获得 ConversieDetails 列表,那么有什么理由为空?提前致谢。
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
实体中的关系默认情况下不加载,将为空。您可以使用以下代码明确告诉 EF 也加载相关实体Include
:
_context.ConversieRun.Include(x => x.Details).ToList();
现在ConversieRun
将加载所有实体,包括它们的详细信息。
您可以在文档的“加载相关数据”部分阅读更多相关信息 ( https://docs.microsoft.com/en-us/ef/core/querying/related-data )
这里的示例是使用显式加载方式,您也可以选择使用延迟加载方式,在您请求相关实体时加载它们。但是,这可能会对数据库查询的数量产生负面影响,因为它将为每个ConversieRun
实体运行单独的查询以获取其详细信息。
- 1 回答
- 0 关注
- 172 浏览
添加回答
举报
0/150
提交
取消