[英]How To Update A Model With Private Properties in Entity Framework Core?
我有一個 model 在 Id 屬性上有一個私有設置器:
public class Guest
{
public Guid GuestId { get; private set; } = Guid.NewGuid();
}
Controller 功能是:
public ActionResult UpdateGuest([FromBody] Guest guest)
{
_db.Guests.Update(guest);
_db.SaveChangesAsync();
return Ok();
}
當我調用 controller 但是它使用新的 GuestId Guid 創建 class 的新實例,因此無法更新屬性。
如果我刪除了私有設置器,那么更新功能就可以正常工作,但我覺得更新 model 的想法並不是真正的最佳實踐。
一種解決方案可能是在表單主體中采用通用 json object 然后更新每個單獨的屬性,但我認為它並不是真正可擴展的,因為每個 model 更新都意味着更新控制器。
解決這個問題的最佳方法是什么? 謝謝!!!
對於FromBody
,它使用Newtonsoft.Json
將 json 反序列化為 Object。
讓Newtonsoft.Json
反序列化私有屬性,你可以試試下面;
public class Guest
{
[JsonProperty]
public Guid GuestId { get; private set; } = Guid.NewGuid();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.