【问题标题】:Why models loads recursive?为什么模型加载递归?
【发布时间】:2019-08-05 13:04:36
【问题描述】:

我有一对多的关系。使用实体框架。两种型号:

1。 记录列出尝试;

2。 尝试long RecordId;记录记录;

var record = this.db.Records.Include(x => x.Attempts).FirstOrDefault(x => x.Id == recordId);
if (record == null)
{
    return this.NotFound();
}

当我从数据库加载数据时,加载主记录,然后在记录内加载尝试,在每次尝试中加载记录等。

如何避免这种情况?

【问题讨论】:

  • 尝试中的记录是虚拟的吗?
  • 没有。需要写虚拟记录吗?
  • 我设置了公共虚拟记录记录,但对我没有帮助
  • 但是每个包含的“尝试”的“记录”不一样吗?
  • 此递归加载是否有任何异常或错误?

标签: c# .net entity-framework asp.net-core


【解决方案1】:

对于这种行为,它是默认行为。

Entity Framework Core 将自动修复导航属性 到之前加载到上下文中的任何其他实体 实例。因此,即使您没有明确包含 导航属性,如果某些或 所有相关实体之前都已加载。

来源:Eager loading

如果您遇到任何序列化错误,您可以尝试Related data and serialization

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2011-11-18
    • 1970-01-01
    • 2014-05-31
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    相关资源
    最近更新 更多