无法使ApplyCurrentValues(Entity)起作用

时间:2013-09-05 15:01:05

标签: c# asp.net vb.net entity-framework

我正在处理我的应用程序的更新部分,我想使用ApplyCurrentValues但它似乎不起作用(未知)

Dim e = (From o In x.Concours Where o.numero_concours = concours.numero_concours Select o).FirstOrDefault()
x.ApplyCurrentValues(e.EntityKey.EntitySetName,concours) x.savechanges()

为了使其正常工作,我已将代码更改为:

 x.Concours.Attach(New Concour With {.numero_concours = concours.numero_concours})
        Dim e = New Concour With {.numero_concours = concours.numero_concours}
        x.Entry(concours).CurrentValues.SetValues(e)
        x.SaveChanges()

但它给了我这个错误

  

无法为实体类型“Concour”调用成员'CurrentValues',因为该实体在上下文中不存在。要将实体添加到上下文,请调用DbSet的Add方法或Attach。

所以,我用了这个:

 Dim e = (From o In x.Concours Where o.numero_concours = concours.numero_concours Select o).FirstOrDefault()
        x.Concours.Attach(New Concour With {.numero_concours = e.numero_concours})
        ((IObjectContextAdapter)x).ObjectContext.ApplyCurrentValues("Conours", e)

        x.SaveChanges()

但它给了我一个语法错误((IobjectContext ..... 任何建议请!!!


 Public Sub UpdateConcours(concours As Concour) Implements IConcoursRepository.UpdateConcours


      Dim e = (
From o In x.Concours
Where o.numero_concours = concours.numero_concours
Select o)
.First()
x.Entry(e)
.OriginalValues
.SetValues(concours)
       x.SaveChanges()
    End Sub

1 个答案:

答案 0 :(得分:0)

试试这个:

Dim e = (
    From o In x.Concours
    Where o.numero_concours = concours.numero_concours
    Select o)
    .First()

x.Entry(e)
    .OriginalValues
    .SetValues(concours)

x.ChangeTracker.DetectChanges();

x.savechanges()