【发布时间】:2011-02-12 20:47:04
【问题描述】:
起初我使用它作为扩展方法来更新我的分离实体...
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,但我希望它也能按照我的预期工作。
我愿意接受有关如何保存我的多对多关系或序列化自我跟踪实体的任何建议(如果自我跟踪甚至可以解决我的问题)。谢谢!
【问题讨论】:
标签: .net vb.net entity-framework serialization