2016-08-12 92 views
0

閱讀了大量的與之相似的話題之後,我解決不了這個問題...的關係是「被刪除」狀態有關更新

我有一個模型......

人: ID,名稱,市

技能: ID,描述,PERSON_ID

一個人可以擁有0°更多的技能,但技能可以有1人。

我的表單包含TextBoxs名稱和城市,並與Person.Skills

在這種GridControl Y可以刪除,添加或編輯的行綁定一個GridControl。

問題是,當我刪除行並保存更改,我收到一個錯誤:

「從‘PersonsSkills’AssociationSet的關係是‘被刪除的’狀態」

當我運行方法DbContext.Skills.Remove(技能)一切正常,但這是最好的方式嗎?我必須手動刪除所有行嗎?

代碼:

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:Sorry for my baaad english ...

回答

0

解決!

當行被刪除時,我跑:

DbContext.Skills.Remove(Ctype(SkillsDataBinding.Current, Skill)) 

後,在 「保存」 程序,設置導航屬性這樣的:

person.Skills = Ctype(SkillsDataBinding.DataSource, List(Of Skill)) 

很簡單,但我一個小菜。