Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web API 2响应中缺少Odata元数据格式_C#_Odata_Asp.net Web Api2 - Fatal编程技术网

C# Web API 2响应中缺少Odata元数据格式

C# Web API 2响应中缺少Odata元数据格式,c#,odata,asp.net-web-api2,C#,Odata,Asp.net Web Api2,我有一个WebAPI2项目,希望将模型公开为Odata服务,以便可以查询 这是我所做的设置: 在WebApiConfig.Register()中,我有 config.AddODataQueryFilter(); 以下代码位于值控制器中 // GET api/values [EnableQuery (PageSize=1)] public IQueryable<TestProduct> Get() { var str = new List<TestProduct>

我有一个WebAPI2项目,希望将模型公开为Odata服务,以便可以查询

这是我所做的设置: 在
WebApiConfig.Register()中,我有

config.AddODataQueryFilter();
以下代码位于值控制器中

// GET api/values
[EnableQuery (PageSize=1)]
public IQueryable<TestProduct> Get()
{
    var str = new List<TestProduct>
    {
        new TestProduct {Name = "Dark", Value = "Lord"},
        new TestProduct {Name = "Dark", Value = "Elf"}
    };
    var hello = str.AsQueryable();
    return hello;
}
我得到的结果是:

[
    {
        "Name": "Dark",
        "Value": "Elf"
    }
]
我缺少
$odata.metadata
属性和
inlinecount
属性。我如何才能将其添加到响应中。 理想情况下,我会寻找:

    [
 "odata.metadata":"http://localhost:43111/api/$metadata#TestProducts",
            "odata.count":"1",
"value":
        {
            "Name": "Dark",
            "Value": "Elf"
        }
    ]
我不打算使用EF。

试试这个:

http://localhost:51823/api/values?$filter=Name eq 'Elf'&$inlinecount=allpages
要获取元数据信息,请将odata=fullmetadata添加到Accept标头,例如:

Accept:application/json;odata=fullmetadata
Accept:application/json;odata=fullmetadata