在odata响应中序列化关联实体

时间:2016-04-09 15:37:38

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

问题是在没有Address子句的实体集TestEntity上的o-data get调用中没有返回字段$expand,而在代码中我正在分配有效的{{ 1}}反对它。

我们已经通过web-API公开了一个o数据实体

Address

后来我们决定将Address公开为一个实体,我们为public class TestEntity { [Key] public long Id { get; set; } public string A { get; set; } public Address Address { get; set; } } public class Address { [Key] public long Id { get; set; } public string Val { get; set; } } 添加了一个密钥和一个控制器,客户端可以在其中创建地址并将其与其他实体关联。但是当Address发生更改时,它不再作为Address类的一部分返回。我在网上搜索时发现,由于TestEntity现在是导航属性,默认情况下不返回,客户端需要发送Address子句。但是我们不想破坏现有的客户端,因此我们需要在没有客户端发送$expand条款的情况下返回。怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Microsoft.AspNet.OData 5.7或更高版本,则可以使用AutoExpand属性为Address属性添加注释。