假设我有 2 个表:
Person(personid, ...)
PersonPhone(ppid, persond, phoneid, ...)
在元数据中将 PersonPhone 定义为复合:
[Include]
[Composition]
public EntityCollection<PersonPhone> PersonPhonees { get; set; }
然后我尝试重新加载人员数据以实现刷新功能。我所做的是在调用 wcf ria 服务以在视图模型中再次加载人员数据之前分离人员:
Context.Persons.Detach(this.Person);
它适用于从表 Person 加载的所有数据。然后我对 PersonPhone 进行测试:假设 personid=1,这个人有 3 部电话:PhoneID: 1,2,3
然后在代码中,我从 PersonPhone 中删除了一行: this.Person.PersonPhonees.Remove(Phone(1));
为了测试,我没有提交更改,然后我重新加载了 Person 数据。Person 数据从 DB 重新加载,但 PersonPhone 仍然只有 2 行:phone(2)、Phone(3),但所有电话应该有 3 行:1,2 和 3。
如何解决这个问题?