【发布时间】:2019-11-05 04:02:01
【问题描述】:
我有一个模型在 Id 属性上有一个私有设置器:
public class Guest
{
public Guid GuestId { get; private set; } = Guid.NewGuid();
}
控制器功能是:
public ActionResult UpdateGuest([FromBody] Guest guest)
{
_db.Guests.Update(guest);
_db.SaveChangesAsync();
return Ok();
}
当我调用控制器时,它会创建一个具有新 GuestId Guid 的新类实例,因此无法更新该属性。
如果我删除了私有设置器,那么更新功能就可以正常工作,但我觉得更新模型想法并不是真正的最佳实践。
一种解决方案可能是在表单主体中获取一个通用 json 对象,然后更新每个单独的属性,但我认为它并不是真正可扩展的,因为每次模型更新都意味着对控制器的更新。
解决这个问题的最佳方法是什么?谢谢!!!
【问题讨论】:
-
您要更新
GuestId属性,还是只更新Guest的其他属性?
标签: c# .net asp.net-core entity-framework-core