2014-11-20 3 views
1

У меня есть проект web api 2 и вы хотите показать модели как службу Odata, чтобы она была доступна для запроса.Формат метаданных Odata отсутствует в ответе Web API 2

Это установка я сделал: В WebApiConfig.Register() У меня есть

config.AddODataQueryFilter(); 

Следующий код в Values ​​контроллер

// 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; 
} 

Когда я запрашиваю

http://localhost:51823/api/values?$filter=Name eq 'Elf' 

я получаю:

[ 
    { 
     "Name": "Dark", 
     "Value": "Elf" 
    } 
] 

У меня нет $odata.metadata объектов недвижимости и inlinecount. Как я могу добавить это в ответ. В идеале я бы искал:

[ 
"odata.metadata":"http://localhost:43111/api/$metadata#TestProducts", 
      "odata.count":"1", 
"value": 
     { 
      "Name": "Dark", 
      "Value": "Elf" 
     } 
    ] 

Я не планирую использовать EF.

ответ

1

Попробуйте это:

http://localhost:51823/api/values?$filter=Name eq 'Elf'&$inlinecount=allpages 

Чтобы получить информацию метаданных добавить OData = fullmetadata к Accept заголовка, например:

Accept:application/json;odata=fullmetadata 
Смежные вопросы