2016-07-18 5 views
0

In meinem oDataController möchte ich den Inhalt einer Liste abrufen. Wenn ich das folgende Beispiel debugge, kann ich sehen, dass das IQueryable "q" tatsächlich korrekten Inhalt enthält.Inhalt einer Liste abrufen <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); 
    } 
} 

Aber das gibt mir einen 500 Interner Serverfehler als HTTP-Antwort. Nicht mehr. Irgendwelche Ideen was ich ausprobieren kann oder wie ich eine detailliertere Fehlermeldung bekommen könnte?

Danke :-)

Edit:

Auch dies führt zu dem Problem:

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

Antwort

0

Zwei Vorschläge: - wie viele Elemente sind in dem Objekt 'q'? Ist es möglich, dass Ihr Code den http-Grenzwert überschreitet? Versuchen Sie, Ihrer Abfrage beispielsweise ".Take (5)" hinzuzufügen, um das an den Client zurückgegebene Objekt zu begrenzen. - versuchen Sie Ok zurückzugeben (q.ToList()) - vielleicht muss die Liste materialisiert werden, bevor Sie zurückgeben?

+0

Es gibt nur 7 Hausobjekte, also glaube ich nicht, Punkt 1 ist ein Problem. Ich habe auch versucht .ToList(). Leider ohne Glück :-( – David

Verwandte Themen