【发布时间】:2020-07-05 16:13:06
【问题描述】:
我试图仅通过动态发送到 API 的值来更新实体,因此每次客户端向我的 api 发送不同的值时,它只会更改给定的值。
这是我的实体
public class Administrator
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string Role { get; set; }
public int Phone { get; set; }
}
这是我的存储库:
public Task<bool> UpdateAdmin(Administrator admin)
{
if (admin != null)
{
_context.Admins.Update(admin);
Commit();
return Task.FromResult(true);
}
else
{
return Task.FromResult(false);
}
}
假设我只想更新电话号码,我只使用新电话号码发送数据,但其余属性也更改为 null。如何只更新给定的?
谢谢
【问题讨论】:
-
第一:不要将整个实体发送给客户端,尤其是不是部分填充的。使用“知道”哪个属性被修改的视图模型。一旦你有了它,有几种方法可以进行点更新,所有这些都归结为将一个属性标记为已修改。
标签: c# asp.net-core sql-server-2005 entity-framework-core