Nav*_*eth 5 annotations dynamic odata data-annotations asp.net-web-api
在api odata使用 的网页中v4 protocol,如何添加附加属性?
完全动态,无实体框架,无反射提供者,
调用url时动态生成元数据。
编辑
Web Api 请求 url:
http://locahost/Service1/EntitySet1
实际的json输出:
{"@odata.context":"some url", value:[{"id":1}]}
Run Code Online (Sandbox Code Playgroud)
预期的 json 响应:
{"@odata.context":"some url", value:[{"id":1}], "ExtraCustomAttribute": "custom value"}
Run Code Online (Sandbox Code Playgroud)
如何在响应中添加此自定义属性web api odata v4 json?
在元数据调用(edmx响应)和实例负载调用(json响应)中。
在 OData v4 中,至少有两个选项可以实现该行为:开放类型、实例注释。这取决于您的要求或设计决策。
除了类型定义中声明的任何属性之外,开放类型被添加为包含动态属性的结构化类型。开放类型可让您增加数据模型的灵活性。
本教程:
演示如何在 ASP.NET Web API OData 中使用开放类型。
实例注释如下所述:docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html#_Toc372793088
在您的情况下,尝试将您的实体声明为:
ODataModelBuilder builder = new ODataModelBuilder();
ComplexTypeConfiguration<YourEntity> pressType = builder.ComplexType<YourEntity>();
// ...
pressType.HasDynamicProperties(c => c.ExtraCustomAttribute);
// public IDictionary<string, object> ExtraCustomAttribute{ get; set; }
Run Code Online (Sandbox Code Playgroud)
并在 get 操作方法中根据需要生成实体。另一个选项可用于控制条目序列化,请在此处查看
https://aspnetwebstack.codeplex.com/wikipage?title=OData%20formatter%20extensibility
| 归档时间: |
|
| 查看次数: |
3088 次 |
| 最近记录: |