.net – 成员’X’被更改为与协会成员’Y’不一致
如果我按照以下步骤,我会收到此错误:
>更改对象的属性Y(关联实体属性) 由于X的值和X(由GetOriginalEntityState返回)的值不同,新值与Y不一致,所以最后一步出现错误.是为什么?这是LINQ to SQL中的一个错误.必须是因为我在第5步中将Y更改为另一个(非空)值时看不到相同的行为.我可以看几种方法: >发生错误时丢弃DataContext,并按原样离开UI.我不喜欢这样,因为那么乐观的并发改变冲突是无法检测到的.新的上下文没有在UI中填充UI的原始值,所以如果UI中有任何陈旧的值,它们将导致数据库中的数据恢复. 有没有更好的解决方案.这是应该报告的东西吗? 解决方法每MSDN:对于关系的更新,从子到父的引用(即对应于外键的引用)被认为是权限.相反方向(即从父母到子级)的引用是可选的.关系类(EntitySet和EntityRef)保证双向引用对于一对多和一对一关系是一致的.如果对象模型不使用EntitySet或EntityRef,并且如果存在反向引用,那么在更新关系时,您有责任保持与转发引用一致. 如果您更新所需的引用和相应的外键,则必须确保它们同意.如果两个在您调用SubmitChanges时不同步,则抛出InvalidOperationException异常.虽然外键值更改足以影响基础行的更新,但您应该更改引用以维护对象图的连接性和双向关系的一致性. http://msdn.microsoft.com/en-us/library/Bb386982(v=VS.90).aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |