我相信這是問別人,但我找不到直接的解決方案。 我的Api正在傳遞對象模型,並且在服務器端,那個未傳遞的對象的每個值都被認爲是null(有意義)。 有沒有辦法告訴EF6不要以傳遞對象的空值更新實體,我不需要寫每個屬性並檢查它是否爲空。EF倉庫與UoW更新
僞代碼
API
Update(int id, TaskEntity obj)
{
unitOfWork.Tasks.Update(id, userTask);
...
unitOfWork.Save()
}
回購更新
Update(int id, T entity)
{
var existingRecord = Get(id); //Gets entity from db based on passed id
if (existingRecord != null)
{
var attachedEntry = Context.Entry(existingRecord);
attachedEntry.CurrentValues.SetValues(entity);
}
}
我的問題是,隨着空值的任何數據實際上將改寫用null現有的數據庫記錄值。
請給我一個解決方案或文章,這是解決。我應該去思考,也許automapper可以處理這個(它不是我相信的目的),或者應該寫一些輔助方法,因爲我的對象可以包含子對象。
預先感謝您。
您是否有TaskEntity中的屬性列表,您將在此更新方法中進行更新?或者你想更新所有的屬性,不是null。但是,那麼如何區分未提供的值與我想要刪除/更新爲空的值? – Developer
如果我正確理解你的問題,你可以將所有相關信息傳遞給方法,並對整個實體進行更新。 – Eldho
如果你想使用反射,你可以這樣做http://stackoverflow.com/questions/17385472/entity-framework-only-update-values-that-are-not-null。但個人我不覺得這是最好的東西 – Eldho