我已成功使用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这一事实实际上是无关紧要的,因为我尝试使用标准自动生成的整数进行相同的测试而没有成功。
答案 0 :(得分:0)
解决方案就像您发布的解决方案一样简单。
只需在代码中创建父实体和子实体,不要设置实体键,也不要忘记为所有服务器生成的Guid列设置StoreGeneratedPattern。
然后执行MasterEntityInstance.Children.Add(ChildEntityInstance)或ChildEntityInstance.MasterEntity = MasTerEntityInstance并调用SaveChanges。
在SaveChanges调用之后,将使用正确的Guid值填充两个guid属性,并且将使用必要的MasterEntity Entity Key值填充ChildEntity.MasterEntity实体密钥。