我正在阅读有关JsonPatch的信息,我注意到使它起作用的唯一方法是从数据库中检索行,如下所示:
public void Patch(int id, JsonPatchDocument<SomeDto> patchData)
{
var objectToUpdate = context.GetById(id);
patchData.ApplyUpdatesTo(objectToUpdate);
repository.Save(objectToUpdate);
}
但是我不喜欢这样,因为它从数据库中检索了所有不必要的字段。
如果我只想要一个简单的更新SQL而不在此之前不选择怎么办? JsonPatch甚至有可能吗?
我自己可以做到这一点,而无需使用这样的JsonPatch(我正在使用EntityFramework 6和ASP.NET Web API 2):
MyEntity entity = new MyEntity { Id = id };
context.MyEntities.Attach(entity);
entity.SomeProperty = newValue;
context.SaveChanges();