【问题标题】:.net odata.metadata not showing for a member type.net odata.metadata 未显示成员类型
【发布时间】:2014-07-12 02:09:20
【问题描述】:

我有一个类型的成员不是简单类型。例如,

class Person
{
   int a;
   Pmetadata personInfo;
}

类型 Person 正在作为 ODataController(WebAPI 框架)中的响应返回。在控制器返回的响应 json 中,根对象有 'odata.metadata' 装饰,但对象 personInfo 没有 'odata.metadata' 装饰. 我尝试使用如下调用将类型 Pmetadata 添加到 EntityModel,

odatamodelbuilder.EntitySet<Pmetadata>("PersonMetadata");

但它没有帮助。

odata.metadata 出现的原因是什么?

【问题讨论】:

    标签: json odata asp.net-web-api


    【解决方案1】:

    将 $format 添加到您的请求 URL 可能会解决您的问题:

    GET ~/Products?$format=application/json;odata=fullmetadata
    

    这两个请求有区别,请试一试:

    1. http://services.odata.org/v3/OData/OData.svc/Products?$format=application/json;odata=nometadata
    2. http://services.odata.org/v3/OData/OData.svc/Products?$format=application/json;odata=fullmetadata

    【讨论】:

    • 如果将 Pmetadata 作为实体类型添加,则需要 $expand 来显示它:~/Persons?$expand=personInfo
    猜你喜欢
    • 2020-08-22
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多