2013-04-13 163 views
2

你好我試圖從更新數據庫中的記錄,但由於某些原因,記錄不更新。我使用ADO.NET實體框架4.0ADO.NET實體模型更新

public void updateCredits(string username) 
{ 
    myDBEntities Entity = new myDBEntities(); 
    User u = Entity.Users.SingleOrDefault(u => u.username == username) 
    u.firstname = "name"; 
    u.credits = 11.5; 
    Entity.SaveChanges(); 
} 

我試圖重新啓動VS甚至SQL Server,但沒有運氣。難道我做錯了什麼?

+0

什麼類型'u.credits' – Kira

+0

沒有什麼錯與您的代碼 - 有更明顯對這個問題比你實際顯示的代碼。 –

+0

確保更改跟蹤已啓用? –

回答

1

它看起來像有與更改跟蹤的問題。你可以嘗試手動標記User實體改變,像這樣:

public void updateCredits(string username) 
{ 
    myDBEntities Entity = new myDBEntities(); 
    User u = Entity.Users.SingleOrDefault(u => u.username == username) 
    u.firstname = "name"; 
    u.credits = 11.5; 
    Entity.Entry(u).State = EntityState.Modified; //<-- manually indicate the entity was changed 
    Entity.SaveChanges(); 
} 

如果上面的代碼工作,然後有一個很好的機會ChangeTracking被莫名其妙地禁用。

+0

謝謝布萊恩爲您快速回復。我設法從ADO.NET實體刪除所有表,並再次將其添加到解決問題。 :) 謝謝 – comb