自引用外键 - GUID - 实体框架4插入问题

时间:2010-08-04 20:59:51

标签: entity-framework-4

我已成功使用EF4自动插入行,并使用服务器生成的GUID:

http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/

现在,如果存在RowID(guid)和ParentRowID(guid),并且两者之间存在主外键约束,那么如何执行此任务?我将.ParentRowID设置为什么?

            NewCut = New Row With
            {
                .ParentRowID = .RowID
            }

SaveChanges每次都会抛出一个契合。

主键是GUID这一事实实际上是无关紧要的,因为我尝试使用标准自动生成的整数进行相同的测试而没有成功。

1 个答案:

答案 0 :(得分:0)

解决方案就像您发布的解决方案一样简单。
只需在代码中创建父实体和子实体,不要设置实体键,也不要忘记为所有服务器生成的Guid列设置StoreGeneratedPattern。
然后执行MasterEntityInstance.Children.Add(ChildEntityInstance)或ChildEntityInstance.MasterEntity = MasTerEntityInstance并调用SaveChanges。
在SaveChanges调用之后,将使用正确的Guid值填充两个guid属性,并且将使用必要的MasterEntity Entity Key值填充ChildEntity.MasterEntity实体密钥。