如何使用 Odata.Delta 与 Webapi 修补枚举

本文关键字:Webapi 修补 枚举 Delta 何使用 Odata | 更新日期: 2023-09-27 17:56:05

我正在尝试使用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);
}

我的问题是,当我修补信息时,家庭住址和附加文档被忽略了。我在这里找到了另一篇文章(如何使用System.Web.Http.OData.Delta修补枚举对象?),但我无法实现解决方案,因为我不知道如何内化Delta代码。有人可以帮助我吗?

如何使用 Odata.Delta 与 Webapi 修补枚举

Delta 被设计为仅与 OData 格式化程序一起使用。有一个错误打开,使其与 json.net 格式化程序一起使用。