猿问

数据记录内的列表为空

我有这个类,其中包含对象 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 列表,包括 ConversieDetails


public List<PGData.ConversieRun> GetAll()

{

      //var result = _context.CoversieDetails.ToList();

      return _context.ConversieRun.ToList();

 }

但是,当我返回上面的示例时,conversieDetail List 为空。现在,当我取消注释结果列表时,conversieDetails 列表将按预期填充到 ConversieRun 对象中。


如果我没有在另一个列表中首先获得 ConversieDetails 列表,那么有什么理由为空?


提前致谢。


慕尼黑5688855
浏览 173回答 1
1回答

拉风的咖菲猫

实体中的关系默认情况下不加载,将为空。您可以使用以下代码明确告诉 EF 也加载相关实体Include:_context.ConversieRun.Include(x&nbsp;=>&nbsp;x.Details).ToList();现在ConversieRun将加载所有实体,包括它们的详细信息。您可以在文档的“加载相关数据”部分阅读更多相关信息 (&nbsp;https://docs.microsoft.com/en-us/ef/core/querying/related-data&nbsp;)这里的示例是使用显式加载方式,您也可以选择使用延迟加载方式,在您请求相关实体时加载它们。但是,这可能会对数据库查询的数量产生负面影响,因为它将为每个ConversieRun实体运行单独的查询以获取其详细信息。
随时随地看视频慕课网APP
我要回答