Breezejs EF BeforeSaveEntities编辑savemap

时间:2015-09-16 20:44:31

标签: entity-framework breeze

我正在尝试在BeforeSaveEntities方法中添加一些逻辑。

在客户端,我们可以在点击保存之前添加父记录和一些子记录。

我们的父记录有两个字段,可由用户选择,是一种唯一标识符(但不是id)。子记录还具有一些唯一标识符和总字段。这些类看起来像这样:

public class Parent
{
    public int Id { get; set; }

    public int Ref1 { get; set; }

    public int Ref2 { get; set; }

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

public class Child
{
    public int Id { get; set; }

    public int Ref1 { get; set; }

    public int Ref2 { get; set; }

    public int Total { get; set; }

    public int ParentId { get; set; }

    [ForeignKey("ParentId")]
    public Parent Parent { get; set; }
}

在BeforeSaveEntities中,我试图检查具有Ref1和Ref2字段的父记录是否与使用第二个上下文的添加实体相同。

如果父记录存在,我将其从保存地图中删除,以防止重新添加(这似乎有效)。

然后我查看正在添加的子记录(再次通过查询第二个上下文),我要做的是允许通过将新记录保留在不存在的savemap中来添加新记录(但更新parentid以将它们链接到现有的父记录。)

如果子记录已经存在,我想用保存地图中添加的记录中的值增加现有记录的总数。

我尝试了几种方法,但似乎无法让它发挥作用。即使在savemap中只有一个新的子实体,它似乎总是会导致父级的所有子条目再次添加。

为人为的课程道歉,但希望这能提供足够的信息来传达我想要做的事情。

0 个答案:

没有答案