2016-07-18 1 views
0

В моем oDataController я хочу получить содержимое списка. Если я отлаживаю следующий пример, я вижу, что IQueryable «q» фактически содержит правильный контент.Получить содержимое списка <T> in oData Controller

public class HousesController : ODataController 
{ 
    [HttpGet] 
    [EnableQuery] 
    [ODataRoute("Houses")] 
    public IHttpActionResult GetHouses() 
    { 
     Yard y = new Yard(); 

     //...code that gets "bhl", what is a list<HouseViewModel>-Type 

     IQueryable<HouseViewModel> q = bhl.AsQueryable();   

     return Ok(q); 
    } 
} 

Но это дает мне 500 внутренних ошибок сервера в качестве ответа HTTP. Больше не надо. Любые идеи, что я могу попробовать или как я могу получить более подробное сообщение об ошибке?

Спасибо :-)

Edit:

Даже это приводит к проблеме:

 List<PersonViewModel> test = new List<PersonViewModel>(); 
     test.Add(new PersonViewModel()); 
     return Ok(test); 

ответ

0

Два предложения: - сколько элементов находятся в 'Q' объекта? Возможно ли, что ваш код превысит трафик ограничения http? Попробуйте добавить .Take (5) к вашему запросу, например, чтобы ограничить объект, возвращенный клиенту - попытаться вернуть Ok (q.ToList()) - может быть, список должен быть материализован перед возвратом?

+0

Есть только 7 домашних объектов, поэтому я не думаю, что пункт 1 является проблемой. Я также попробовал .ToList(). К сожалению, не повезло :-( – David