2013-09-05 29 views
0

進出口工作在我的應用程序更新部分,我想用ApplyCurrentValues但似乎不工作(未知)無法獲得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或Attach的Add方法。

所以,我用這個來代替:

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 

回答

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() 
+0

我嘗試過但沒有在我的數據庫中發生任何變化我看不到有什麼問題:( –

+0

對象'concours'包含什麼?它與e不同嗎? – qujck

+0

它被定義爲Concour我已經把更新函數有一個明確的想法 –