Das Entitätsframework mit OData (Web-API) sendet die Order By-Klausel standardmäßig an Sql Query

Ich benutze Web-API mit OData. und ich habe eine Entität in einem EF 5.0 definiert. Ich sende eine sehr einfache Anfrage an Controller:

 $.ajax({url: "/odata/Details?$top=10",
            type: "GET",
            dataType: 'json',
            success: function (data) {
               viewModel.list(data.value);
            }

Jetzt Code auf meinem Controller ::

 [Queryable]
    public override IQueryable<Area> Get()
    {  
    return db.Area.AsQueryable();
    }

Abfrage, die ich mit SQL Profiler sehe:

 SELECT TOP (@p__linq__1) 
[Project1].[id] AS [id1], 
[Project1].[name] AS [name1], 
[Project1].[pucrhase] AS [pucrhase1], 
[Project1].[sale] AS [sale1]
FROM Area
ORDER BY [Project1].[id] DESC, [Project1].[name] ASC, [Project1].[pucrhase] ASC,      
[Project1].[sale] ASC,N',@p__linq__1 int,@p__linq__1=10

Ich habe keine Bestellung, Order By Clause angefordert. EF fügt der Abfrage die ORDER BY-Klausel hinzu. Die hinzugefügte Order By-Klausel enthält alle Tabellenspalten. Diese Tabelle enthält 3 Millionen Datensätze und die Abfrage läuft ab, da sie nach allen Spalten sortiert.

Ich habe es getestet, indem ich Order By entfernt habe. Es dauerte weniger als eine Sekunde, bis es fertig war

Also ist die Frage

So verhindern Sie, dass Entity Framework (Unterstützung von Web Api Odata) eine Order By-Klausel an Sql Query sendet.

Wie entferne ich die Order By-Klausel aus dem SQL Query Entity-Framework (Web Api Odata), das auf dem Server ausgeführt wird?

Jede Hilfe wird geschätzt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage