Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF-从投影到域映射需要7分钟_C#_Entity Framework - Fatal编程技术网

C# EF-从投影到域映射需要7分钟

C# EF-从投影到域映射需要7分钟,c#,entity-framework,C#,Entity Framework,EntityFramework生成此查询: SELECT [Project1].[Ocr_Status] AS [Ocr_Status], [Project1].[Id] AS [Id], [Project1].[Caption] AS [Caption], [Project1].[Name] AS [Name], [Project1].[Description] AS [Description], [Project1].[Url] AS [Url], [Project1].[Pi

EntityFramework生成此查询:

SELECT 
[Project1].[Ocr_Status] AS [Ocr_Status], 
[Project1].[Id] AS [Id], 
[Project1].[Caption] AS [Caption], 
[Project1].[Name] AS [Name], 
[Project1].[Description] AS [Description], 
[Project1].[Url] AS [Url], 
[Project1].[PictureUri] AS [PictureUri], 
[Project1].[ThumbnailUri] AS [ThumbnailUri], 
[Project1].[ValidFrom] AS [ValidFrom], 
[Project1].[ValidTo] AS [ValidTo], 
[Project1].[VisibleFrom] AS [VisibleFrom], 
[Project1].[VisibleTo] AS [VisibleTo], 
[Project1].[Ocr_Id] AS [Ocr_Id], 
[Project1].[Status] AS [Status], 
[Project1].[Gradient_Width] AS [Gradient_Width], 
[Project1].[Gradient_Color] AS [Gradient_Color], 
[Project1].[BrandId] AS [BrandId], 
[Project1].[StoreOfflineJson] AS [StoreOfflineJson], 
[Project1].[CreatedBy] AS [CreatedBy], 
[Project1].[CreatedOn] AS [CreatedOn], 
[Project1].[LastModifiedBy] AS [LastModifiedBy], 
[Project1].[LastModifiedOn] AS [LastModifiedOn], 
[Project1].[RowVersion] AS [RowVersion], 
[Project1].[C1] AS [C1], 
[Project1].[Id1] AS [Id1], 
[Project1].[PictureUri1] AS [PictureUri1], 
[Project1].[Page] AS [Page], 
[Project1].[Text] AS [Text], 
[Project1].[FlyerId] AS [FlyerId], 
[Project1].[CreatedBy1] AS [CreatedBy1], 
[Project1].[CreatedOn1] AS [CreatedOn1], 
[Project1].[LastModifiedBy1] AS [LastModifiedBy1], 
[Project1].[LastModifiedOn1] AS [LastModifiedOn1], 
[Project1].[RowVersion1] AS [RowVersion1]
FROM ( SELECT 
    [Extent1].[Id] AS [Id], 
    [Extent1].[Caption] AS [Caption], 
    [Extent1].[Name] AS [Name], 
    [Extent1].[Description] AS [Description], 
    [Extent1].[Url] AS [Url], 
    [Extent1].[PictureUri] AS [PictureUri], 
    [Extent1].[ThumbnailUri] AS [ThumbnailUri], 
    [Extent1].[ValidFrom] AS [ValidFrom], 
    [Extent1].[ValidTo] AS [ValidTo], 
    [Extent1].[VisibleFrom] AS [VisibleFrom], 
    [Extent1].[VisibleTo] AS [VisibleTo], 
    [Extent1].[Ocr_Id] AS [Ocr_Id], 
    [Extent1].[Ocr_Status] AS [Ocr_Status], 
    [Extent1].[Status] AS [Status], 
    [Extent1].[Gradient_Width] AS [Gradient_Width], 
    [Extent1].[Gradient_Color] AS [Gradient_Color], 
    [Extent1].[BrandId] AS [BrandId], 
    [Extent1].[StoreOfflineJson] AS [StoreOfflineJson], 
    [Extent1].[CreatedBy] AS [CreatedBy], 
    [Extent1].[CreatedOn] AS [CreatedOn], 
    [Extent1].[LastModifiedBy] AS [LastModifiedBy], 
    [Extent1].[LastModifiedOn] AS [LastModifiedOn], 
    [Extent1].[RowVersion] AS [RowVersion], 
    [Extent2].[Id] AS [Id1], 
    [Extent2].[PictureUri] AS [PictureUri1], 
    [Extent2].[Page] AS [Page], 
    [Extent2].[Text] AS [Text], 
    [Extent2].[FlyerId] AS [FlyerId], 
    [Extent2].[CreatedBy] AS [CreatedBy1], 
    [Extent2].[CreatedOn] AS [CreatedOn1], 
    [Extent2].[LastModifiedBy] AS [LastModifiedBy1], 
    [Extent2].[LastModifiedOn] AS [LastModifiedOn1], 
    [Extent2].[RowVersion] AS [RowVersion1], 
    CASE WHEN ([Extent2].[Id] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1]
    FROM  [Flyers].[Flyers] AS [Extent1]
    LEFT OUTER JOIN [Flyers].[Pages] AS [Extent2] ON [Extent1].[Id] = [Extent2].[FlyerId]
    WHERE ( NOT (((( CAST( [Extent1].[Status] AS int)) & ( CAST( 4 AS int))) = 4) AND ((CASE WHEN (( CAST( [Extent1].[Status] AS int)) & ( CAST( 4 AS int)) IS NULL) THEN cast(1 as bit) ELSE cast(0 as bit) END) = 0))) AND ( NOT (((( CAST( [Extent1].[Status] AS int)) & ( CAST( 1 AS int))) = 1) AND ((CASE WHEN (( CAST( [Extent1].[Status] AS int)) & ( CAST( 1 AS int)) IS NULL) THEN cast(1 as bit) ELSE cast(0 as bit) END) = 0))) AND ((( CAST( [Extent1].[Status] AS int)) & ( CAST( 2 AS int))) = 2) AND (3 = [Extent1].[Ocr_Status])
)  AS [Project1]
ORDER BY [Project1].[Id] ASC, [Project1].[C1] ASC
在MSSMS中,此查询在1-3s中完成,但在应用程序中:

-- Executing asynchronously at 30.05.2017 11:19:40 +02:00
-- Completed in **525 ms** with result: SqlDataReader
那么查询是在0.5s内完成的是吗

现在是放映时间。这需要6-10分钟

return await Context.Flyers.Where(predicate).Include(f => f.Pages).ToListAsync();
发生了什么事?大约有300排

编辑:添加where谓词 谓词如下所示:

Expression<Func<BackOfficeFlyer, bool>> exsp = flyer =>
                !flyer.Status.HasFlag(FlyerStatus.Active) &&
                !flyer.Status.HasFlag(FlyerStatus.Deleted) &&
                flyer.Status.HasFlag(FlyerStatus.Validated) &&
                flyer.Ocr.Status == OcrStatus.Finished;
表达式exsp=flyer=>
!flyer.Status.HasFlag(FlyerStatus.Active)&&
!flyer.Status.HasFlag(FlyerStatus.Deleted)&&
flyer.Status.HasFlag(FlyerStatus.Validated)&&
flyer.Ocr.Status==OcrStatus.Finished;

进入SQL Server探查器,检查查询量、执行时间以及一个查询和下一个查询之间的间隔。通过MS SQL Server管理,查询在1-3秒内完成。它在将查询结果映射到域模型时停止。@Nerf SQL Server Profiler。检查是否正在执行其他查询。对于您的问题
,查询是否在0.5s内完成?是吗?
似乎查询会在探查器告诉您的任何时间执行。在**525毫秒**消息中完成的
还包括网络时间,因此这525秒将大于探查器时间。不知道为什么那6-10分钟…是的,你的地方很可怕,不干净,把它清理干净,你也许能理解剩下的