我已經在本地修改了一個對象,然後將它傳遞給DAL以在連接的數據庫上進行更新。如何使用dbcontext SaveChanges將修改的記錄推送到數據庫?
通常我會使用存儲過程並執行讀取器來更新數據庫,但是此項目實現db數據庫上下文。
但是,當我運行該方法來保存更改時,它將返回沒有錯誤,並且記錄不會更新數據庫上。
在這裏做一個搜索我遇到了this question建議在調用保存之前將db記錄標記爲修改狀態。哪個沒有解決問題。
問:
你怎麼可以把修改的記錄到數據庫使用的DbContext的SaveChanges?
這是DAL方法的要點:
public void update_Release_Status(Status recordModified)
{
//Get the original record and update with the modified values.
Status recordOriginal = db3.Status .First(i => i.ID == recordModified.ID);
db3.Entry(recordOriginal).State = System.Data.Entity.EntityState.Modified; //marked as modified here before saving
recordOriginal = recordModified;
db3.SaveChanges();
}
你從來沒有真正改變'recordOriginal'實例上的任何東西,所以沒有什麼可以更新的。你可以在'recordOriginal'上設置單個字段,而不是完全替換變量引用?或者,如果最初來自數據庫上下文,您可以將'recordModified'附加到上下文中? (它從哪裏來的?) – David
這個解決方案適合你還是什麼? http://stackoverflow.com/a/39663331/1077309 – Sampath