大家好,下面是UserController更新的方法
public async Task<IResponseOutput> UpdateBasicAsync(UserUpdateBasicInput input)
{
var entity = await _userRepository.GetAsync(input.Id);
entity = _mapper.Map(input, entity);
var result = (await _userRepository.UpdateAsync(entity)) > 0;
return ResponseOutput.Result(result);
}
其中,UserUpdateBasicInput如下
public class UserUpdateBasicInput : Entity
{
/// <summary>
/// 頭像
/// </summary>
public string Avatar { get; set; }
/// <summary>
/// 昵稱
/// </summary>
[Required(ErrorMessage = "請輸入昵稱")]
public string NickName { get; set; }
/// <summary>
/// 備注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 版本
/// </summary>
public long Version { get; set; }
}
因為Remark並沒有限制必填,如果用戶Request Body發送如下內容:
{
"id": 6,
"nickName": "Fuck",
}那麼UpdateBasicAsync收到的input中,Remark為null。但是更新後Remark的值在數據庫內也變為null了…
但是我並不想要修改Remark的值。
請問該如何修改呢? 謝謝大家。
uj5u.com熱心網友回復:
那就讓Remark的值保持原來不變的樣子就好了啊,這樣他就不會修改到資料庫了。第一次查詢時保存他的值,更新之前賦回去
uj5u.com熱心網友回復:
您好,您的意思是說? 先將原先Remark值取出後再一併更新回去欄位嗎?我的想法是如果欄位沒有變更,就不要去做更新的動作。甚至先判斷Request Body的數據是否有效,但是又希望有效率的檢查,而不是一個一個確認該值是否為null?
uj5u.com熱心網友回復:
您好,您的意思是指? 先將原先Remark的值由資料庫取出後,於更新寫入時再將該值一併寫入數據庫嗎?我的想法是希望有需要更新的數據才進行更新,提升些效率。此外,該如何有效率的檢查Request Body數據是否有效呢?一個一個將數據取出判斷似乎是否為null好像不是很好的做法? 實在不曉得該怎麼檢查?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/256565.html
標籤:ASP.NET
上一篇:c# MessageBox.Show 怎么做置頂且一定要選擇的那種模式
下一篇:分享一個獲取公網IP最簡單的辦法
