实体框架-在相关实体上加载相关实体(一对多)

时间:2019-03-19 17:33:57

标签: c# sql entity-framework entity-framework-6

我正在尝试加载一个对象(a),并且该对象具有对象(b)的集合,每个对象:b都附加有单个对象。 我缩减了以下代码,向您展示了它的设置方式。

我可以毫无问题地加载“ MyImprovement”。 我可以在同一时刻加载“ MyCondition”的集合。 但是我无法加载的是“ MyCondition”中引用的“ MyComponent” ...

我设法使用.Include和.ThenInclude找到了一些示例,但是,从我所看到的来看,.nnInclude不存在吗?

我已经尝试了所有可能的方面,但我仍然认为应该可以做到,对吧?

有人愿意承担这项任务吗?我现在完全迷路了,所以请帮忙! 预先感谢!

/卡尔

public class MyImprovement
{
    [Key]
    public int MyImprovementId { get; set; }
    public virtual ICollection<MyCondition> Conditions { get; set; }
}

public class MyCondition
{
    [Key]
    public int MyConditionId { get; set; }
    public int? ComponentId { get; set; }
    public virtual MyComponent ConditionalMyComponent { get; set; }
}

public class MyComponent
{
    [Key]
    public int ComponentId { get; set; }
    public string PDNumber { get; set; }
}     

// Code to load the first 2 levels of objects
MyImprovement improvement = dbx.MyImprovements
                                  .Include("Conditions")
                                  .Where(x => x.ImprovementId == id)
                                        .First();

1 个答案:

答案 0 :(得分:1)

如果要热切加载复杂的实体图,可以将多个.Include()-具有以下样式的方法组合在一起:

MyImprovement improvement = dbx.MyImprovements
                                  .Include("Conditions")
                                  .Include("Conditions.ConditionalMyComponent")
                                  .Where(x => x.ImprovementId == id)
                                        .First();