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

时间:2013-01-24 16:41:29

标签: c# asp.net-web-api odata

我正在尝试使用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代码。愿有人帮帮我吗?

1 个答案:

答案 0 :(得分:0)

Delta旨在仅与OData格式化程序一起使用。有一个bug可以使它与json.net格式化程序一起使用。