如何使用OData.Delta修补/更新外键?
本文关键字:更新 修补 何使用 OData Delta | 更新日期: 2023-09-27 18:15:05
尝试利用System.Web.Http.OData.Delta在ASP中实现PATCH方法。. NET Web API服务,但似乎无法将更改应用于外键关系属性。
考虑这个数据类型,它应该可以在对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 object和country id属性总是为空。
知道如何使用delta/patch更新外键吗?
刚刚发现OData Delta<t>
只更新基本类型或类的属性。目前还不支持继承类、可空对象、泛型、整数、派生类型。(可能在未来的版本中支持)。
我使用反序列化方法解决了这个问题,这里有一个示例:
链接