【发布时间】:2014-09-18 04:52:32
【问题描述】:
试图利用 System.Web.Http.OData.Delta 在 ASP.NET Web API 服务中实现 PATCH 方法,但似乎无法将更改应用于外键关系属性。
考虑这种数据类型,它应该可以在对 Web API 服务的 PATCH 请求中更新:
public class Company
{
public int ID { get; set; }
// [Required]
public String Name { get; set; }
public string Description { get; set; }
public int ? CountryID { get; set; }
[ForeignKey("CountryID")]
public virtual Country Country { get; set; }
}
当我更新名称/描述属性时,一切正常。但是,当我尝试更新国家 ID 属性时,我可以看到来自浏览器的以下请求。
CountryID: 3
Description: "e"
ID: 10
Name: "EF"
但在服务器端,Delta<Company> 对象中的 country 对象和 country id 属性始终为空。
知道如何使用 delta/patch 更新外键吗?
【问题讨论】:
-
刚刚发现OData Delta
只更新基本类型或类的属性。尚不支持继承类、可空对象、泛型、整数、派生类型。我已经使用反序列化方法解决了这个问题:aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/…
标签: c# asp.net asp.net-web-api odata