2
起初我用這個作爲一個擴展的方法來更新我的分離的實體...如何更新EF 4.0中的非標量實體屬性?
Public Sub AttachUpdated(ByVal obj As ObjectContext, ByVal objectDetached As EntityObject)
If objectDetached.EntityState = EntityState.Detached Then
Dim original As Object = Nothing
If obj.TryGetObjectByKey(objectDetached.EntityKey, original) Then
obj.ApplyCurrentValues(objectDetached.EntityKey.EntitySetName, objectDetached)
Else
Throw New ObjectNotFoundException()
End If
End If
End Sub
一切都被偉大的工作,直到我不得不更新非標量的屬性。糾正我,如果我錯了,但這是因爲「ApplyCurrentValues」只支持標量。爲了解決這個問題,我只保存了FK_ID字段而不是實體對象關係。現在我面對的是多對多的關係,所以它不那麼簡單。我想做這樣的事情...
Dim Resource = RelatedResource.GetByID(item.Value)
Condition.RelatedResources.Add(Resource)
但是,當我調用SaveChanges添加的資源不會保存。我開始玩弄自我追蹤的實體(不知道他們是否會幫助解決我的問題),但似乎他們無法序列化到ViewState,這是我的要求。
我想一種解決方案是將xRef表添加爲一個實體並自己添加fks,但我寧願只是按照我的預期工作。
對於如何保存我的多對多關係或序列化自我跟蹤實體(如果自我跟蹤甚至能解決我的問題),我很樂意提供任何建議。謝謝!