0

为了让事情不太复杂,我不会为这个问题使用我自己的实体模型,而是使用原始 GraphDiff-Blog-Post中的模型其中有一个公司实体有多个联系人。为了说明我的问题,我认为这已经足够了。

所以基本上我的代码与graphdiff示例中的代码相同,效果很好:

using (var context = new TestDbContext())  
{
    // Update the company and state that the company 'owns' the collection Contacts.
    context.UpdateGraph(company, map => map
        .OwnedCollection(p => p.Contacts)
    );

    context.SaveChanges();
}

问题是当试图在程序的 2 个不同实例上向同一公司添加新联系人时。例如,实例 1 保存了一个新的联系人 A,然后实例 2 保存了一个新的联系人 B。实例 1 中的图表在数据库中更新得很好,但实例 2 中的图表覆盖了实例 1 所做的所有更改并删除了新创建的联系人 A。

有没有办法用 Graphdiff 解决这个问题?也许我需要进行 2 个独立更新(一个用于公司,一个用于联系人),但首先使用 GraphDiff 已经没有多大意义了。还考虑过在更新图表之前做一个差异,但这似乎也有点矫枉过正。

或者,也许我只是对实体框架没有经验,以查看简单的解决方案:)

任何帮助表示赞赏!

干杯,迈克尔

4

0 回答 0