Linq to sql MVCMiniProfiler不显示Linq查询的何处部分

Linq to sql MVCMiniProfiler不显示Linq查询的何处部分,linq-to-sql,asp.net-mvc-2,mvc-mini-profiler,mvcminiprofiler,Linq To Sql,Asp.net Mvc 2,Mvc Mini Profiler,Mvcminiprofiler,我正在使用MVCMiniProfiler分析一些数据库查询。 对于一个查询,它无法显示我在代码中定义的查询的Where部分 代码如下: MyAppDataContext.cs: 程序代码: 这是MVC Mini Profiler向我展示的内容: SELECT [t0].[ID], [t0].[DatumOntvangst], [t0].[DatumRapport], [t0].[FK_SID], [t0].[ControleStatus], [t0].[SStatus] FROM [d

我正在使用MVCMiniProfiler分析一些数据库查询。 对于一个查询,它无法显示我在代码中定义的查询的Where部分

代码如下:

MyAppDataContext.cs:

程序代码:

这是MVC Mini Profiler向我展示的内容:

SELECT [t0].[ID], [t0].[DatumOntvangst], [t0].[DatumRapport], [t0].[FK_SID], 
    [t0].[ControleStatus], [t0].[SStatus] FROM [dbo].[Request] AS [t0] 
正如你所看到的,没有Where语句。
顺便说一句:输出包含正确的结果,但由于此查询需要30秒才能完成,我想知道是否首先从数据库检索所有数据,然后在代码中应用where条件(与数据库相反)。

您需要使其返回IQueryable。通过返回IEnumerable,您不允许IQueryable提供程序转换表达式树的其余部分。LINQ to Objects版本的查询运算符适用于IEnumerable。LINQ to SQL需要IQueryable版本。

您需要使其返回IQueryable。通过返回IEnumerable,您不允许IQueryable提供程序转换表达式树的其余部分。LINQ to Objects版本的查询运算符适用于IEnumerable。LINQ to SQL需要IQueryable版本。

实体是如何定义的?具体来说,返回类型是什么?返回类型是IEnumerable。实体是AppDataContext.RequestsHow是否定义了实体?具体来说,返回类型是什么?返回类型是IEnumerable。实体是AppDataContext。Requests很抱歉,这没有解决它。您能在问题中包括实体的定义吗。在这一点上,我们试图帮助您解决影响您结果的不完整信息。非常感谢。通过添加代码来更新我的问题,我发现实体实际上是一个IEnumerable。我将代码的其余部分更改为IQueryable,但没有更改实体。现在我做到了,那里的情况显示出来了。很高兴我能帮上忙。通常,解决方案来自于试图解释问题。速度更快,因为它不再需要对所有行进行水合,然后使用LINQ对对象进行过滤。筛选器现在正在发送到数据库,以减少生成的行数。很抱歉,这没有解决此问题。请在问题中包含实体的定义。在这一点上,我们试图帮助您解决影响您结果的不完整信息。非常感谢。通过添加代码来更新我的问题,我发现实体实际上是一个IEnumerable。我将代码的其余部分更改为IQueryable,但没有更改实体。现在我做到了,那里的情况显示出来了。很高兴我能帮上忙。通常,解决方案来自于试图解释问题。速度更快,因为它不再需要对所有行进行水合,然后使用LINQ对对象进行过滤。过滤器现在被发送到数据库,以减少生成的行数。
MyAppDataContext DataContext = MyAppDataContext.CreateNewContext();
IEnumerable<Requests> Entities = DataContext.Requests;

using (profiler.Step("get data")) {
    var dataset = Entities.Where(x => x.ControleStatus == 4).OrderBy(x => x.ID)
}
using (profiler.Step("get data")) {
    var dataset = from x in Entities 
                  where x.ControleStatus == 4
                  orderby x.ID
                  select x;
}
SELECT [t0].[ID], [t0].[DatumOntvangst], [t0].[DatumRapport], [t0].[FK_SID], 
    [t0].[ControleStatus], [t0].[SStatus] FROM [dbo].[Request] AS [t0]