为了账号安全,请及时绑定邮箱和手机立即绑定

数据记录内的列表为空

数据记录内的列表为空

C#
慕尼黑5688855 2022-01-09 15:33:13
我有这个类,其中包含对象 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实体运行单独的查询以获取其详细信息。


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信