【发布时间】:2016-08-12 15:42:14
【问题描述】:
看了很多类似的题目,我都解决不了这个问题……
我有下一个模型...
人员: ID、姓名、城市
技能: ID、描述、Person_Id
一个人可以拥有 0 多个技能,但一个技能可以拥有 1 个人。
我的表单包含 TextBox 名称和城市,以及与 Person.Skills 绑定的 GridControl
在此 GridControl 中,您可以删除、添加或编辑行。
问题是当我删除一行并保存更改时,我收到下一个错误:
“来自‘PersonsSkills’ AssociationSet 的关系处于‘已删除’状态。”
当我运行方法 DbContext.Skills.Remove(skill) 时一切正常,但这是最好的方法吗?我必须手动对所有删除的行执行此操作?
代码:
Private DbContext As New Model()
Private person As Person
'Load Person to edit
Private Sub loadPerson()
Dim person As Person = (From p In DbContext.Persons
Where p.Id = IdPerson
Select p).First()
End Sub
NameTextBox.Text = person.Name
CityTextBox.Text = person.City
SkillsBindingSource.DataSource = person.Skills.ToList()
'Update changes
Private Sub save()
person.Name = NameTextBox.Text
person.City = CityTextBox.Text
person.Skills = Ctype(SkillsBindingSource.DataSource, List(Of Skill))
End Sub
DbContext.SaveChanges()
感谢您的帮助!
PD:对不起,我的 baaad 英语......
【问题讨论】:
标签: vb.net entity-framework entity-framework-6