我使用的Web API和OData的。 我有在EF 5.0中定义的实体。 我送非常简单的请求控制器::
$.ajax({url: "/odata/Details?$top=10",
type: "GET",
dataType: 'json',
success: function (data) {
viewModel.list(data.value);
}
现在我的控制器代码::
[Queryable]
public override IQueryable<Area> Get()
{
return db.Area.AsQueryable();
}
查询我看到使用SQL事件探查::
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
我没有要求任何排序,ORDER BY子句。 EF通过本身增加ORDER BY子句来查询。 为了通过添加子句包含table.This表的所有列有300万次的记录和查询超时,因为它是由所有列排序。
我测试通过移除顺序按花了不到一秒钟完成
所以,问题是
如何从发送ORDER BY子句的SQL查询停止实体框架(支持网络API的OData的)。
如何从SQL查询实体框架(网页API的OData)删除Order By子句运行服务器上?
任何帮助表示赞赏。