Ich habe ein ASP.NET WebAPI-Projekt. Ich habe kürzlich EntityFramework-Entitäten für alle meine Datentabellen erstellt. Aber ich möchte meine Datenschicht & nicht meinen Benutzern zugänglich machen. Wie kann ich meine Entitäten einem ViewModel (automapper?) Zuordnen und bieten IQueryable Rückgabetyp, so dass meine API OData unterstützt?Wie kann ich mithilfe von EF und WebAPI ein ViewModel zurückgeben und IQueryable/OData unterstützen?
OData unterstützt Abfragezusammensetzung und SQL-ähnliche Parameter. Ich denke, ich müsste eine Art 2-Wege-Übersetzung für den Teil der Fragestellung bereitstellen. Bedeutet das einen benutzerdefinierten LINQ-Anbieter? Ich hoffe, es ist einfacher als das.
Oder sollte ich auf IQueryable/OData aufgeben?
ist das noch in Web Api 2 möglich? –
Absolut! natürlich ist es das. Jetzt gibt es nur mehr Möglichkeiten. –
Ich glaube nicht, dass diese Methode nicht mehr funktioniert. Die Methode wird erst aufgerufen, wenn der Parameter in ODataQueryOptions geändert wird. Wenn Sie den Parameter auf diesen Wert ändern, wird die Methode zwar aufgerufen, aber odataQuery.ApplyTo() löst eine Ausnahme aus und sagt, dass die Abfrage auf den Typ PersonDto und nicht auf Person angewendet wird. –
sheamus