我正在尝试使用 System.Web.Http.OData.Delta 在 ASP.NET Web API 服务中实现 PATCH 方法,但它似乎无法将更改应用于 IEnumerable 类型的属性。
这是我的代码:
public class Person
{
[Required]
public string Name { get; set; }
public IList<Document> AdditionalDocuments { get; set; }
public HomeAddress HomeAddress { get; set; }
}
public class HomeAddress
{
public string StreetName { get; set; }
}
public class Document
{
public string Value { get; set; }
}
补丁是这样实现的:
[AcceptVerbs("PATCH")]
public void Patch(string id, Delta<Person> delta)
{
var person = personRepository.GetById(id)
delta.Patch(person);
}
我的问题是,当我修补信息时,HomeAddress 和 AdditionalDocuments 被忽略了。我在这里找到了另一篇文章(How do I patch enumerables with System.Web.Http.OData.Delta?),但我无法实现该解决方案,因为我不知道如何内化 Delta 代码。有人可以帮助我吗?