具有自引用实体的UpdateGraph

时间:2014-10-22 15:27:27

标签: entity-framework self-referencing-table graphdiff

我正在使用GraphDiff和EF来更新从REST服务获取的断开连接的对象的状态。

从现在开始它工作得相当好,但我遇到了自引用实体的问题。

实体:

public class Foo {
    [Key]
    public int Id { get; set; }

    public virtual ICollection<Bar> Bars { get; set; }

    public Foo() {
        Bars = new HashSet<Bar>();
    }
}

public class Bar {
    [Key]
    public int Id { get; set; }

    public string Name { get; set; }

    public virtual ICollection<Bar> Children { get; set; }

    public Bar() {
        Children = new HashSet<Bar>();
    }
}

UpdateGraph电话:

DataContext.UpdateGraph(entity, map => map
    .OwnedCollection(e => e.Bars,
        with => with.OwnedCollection(b => b.Children)
    )
);

这最后一次图表调用只更新1级递归。我怎样才能更新主页递归的深度?

1 个答案:

答案 0 :(得分:1)

GraphDiff目前不支持通过流畅的API映射非预定深度的递归关系。此外,基于新属性的映射将因圆形图而抛出异常。所以我担心你现在无法对此进行映射,但是我已经打开了an issue,并且可以查看是否可以添加对此的支持。