从数据库读取对象时如何加载相关对象?

| 我可以肯定这是一个延迟加载问题,但是在阅读了有关延迟加载的内容之后,我仍然没有一个解决方案。我试图打开和关闭延迟加载没有成功。当我从数据库中提取节点时,即使数据库中存在此类对象,“父级”和“子级”也为空。 我还添加了\'IsReference = true \'作为尝试解决此问题的方法。 我曾经将对象引用的数据成员虚拟化了,但是代理存在序列化问题。 DatabaseContext.cs
public class DatabaseContext : DbContext
{
  public DatabaseContext() : base(\"DatabaseName\")
  {
    Configuration.LazyLoadingEnabled = false;
  }
  public DbSet<Node> Nodes { get; set; }
}
Node.cs
[DataContract(IsReference = true)]
public partial class Node
{

  [DataMember]
  public long ID { get; private set; }

  [DataMember]
  public Node Parent { get; set; }

  [DataMember]
  public ICollection<Node> Children { get; set; }

}
    
已邀请:
        请参阅加载相关对象 最简单的方法是在查询中使用ѭ2     
        我最终将所需的包含作为参数(可以使用实际的类型或字符串)传递给该方法,然后我循环了包含,因为它们返回DbQuery对象并且实际上不查询数据库。感谢您输入@moi_meme(+1)。
foreach (var include in includes)
{
  query = query.Include(include);
}
    

要回复问题请先登录注册