【问题标题】:How to update non-scalar entity properties in EF 4.0?如何更新 EF 4.0 中的非标量实体属性?
【发布时间】: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


    【解决方案1】:

    我认为您可以先阅读此答案EF programmaticlly insert many to many,然后再具体说明您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-03
      • 2023-04-09
      • 2011-04-12
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多