HI 我有一个使用EF自我跟踪对象的项目。我正在尝试向对象添加关系。 (parentobject.relationshipObject.Add(New relationshipObject ...))。 但它引发了一个错误:
无法更改ObservableCollection 在CollectionChanged或 PropertyChanged事件。
此错误发生在模板创建的代码的#Region“Association Fixup”中。 最初主要对象没有带来任何关系。只有当用户选择了项目时,才会在项目中更新关系。 我发现,如果我从集合中删除MainObject并使用关系读取它,则不会发生此错误。如果我只更新mainObject中的关系对象,当我从客户端添加新的关系对象时会发生此问题 非常感谢任何帮助
- 代码序列如下 1.获取所有父实体。 2.当用户选择实体时获取实体的关系并更新关系实体
parentCol.AsEnumerable.Where(Function(x)x.ID = e.Result.ID).FirstOrDefault()。StopTracking() parentCol.AsEnumerable.Where(Function(x)x.ID = e.Result.ID).FirstOrDefault()。relationshipEntity = e.Result.relationshipEntity parentCol.AsEnumerable.Where(Function(x)x.ID = e.Result.ID).FirstOrDefault()。StartTracking()
Dim newRel As New relationshipEntity newRel.Ref_parent_Id = parentItem.ID newRel.REF_rel_ID = relItem.Id parentItem.relationshipEntity.Add(newRel)--->这里引发错误
relationshipEntity表示父实体与另一个实体之间的关系表(多对多关系)。
感谢
答案 0 :(得分:0)
您是否在设置孩子的父母时尝试添加新孩子?
由于EF试图在双向关系上修复单向链接,我认为这可能会导致这样的问题。
E.g。
parent.Add(new Child { Parent = parent, Name = "abc" });
与让EF做连接的另一面相反
parent.Add(new Child { Name = "abc" });
或
new Child { Parent = parent, Name = "abc" });