【问题标题】:C# Entity Framework Pagination Children IncludesC# 实体框架分页子项包括
【发布时间】:2020-04-16 14:27:40
【问题描述】:

我正在寻找执行以下操作的最快方法。我需要完成的是,我有一个屏幕显示在“批次”内定义的“零件”。每个零件都有一个站的对象,每个站都有工具的对象,每个工具都可以有测量。

我的问题是我无法让分页工作。传入的偏移量为 0,要获取的记录数为 20,但是以下操作不起作用:

Lot foundLot = EntitiesContext.Lots.Where(x => x.ID == lotID) .IncludeFilter(lot => lot.Parts.OrderBy(n => n.PartID).Skip(offset).Take(numberOfRecords).ToList()) .IncludeOptimized(lot => lot.Parts.Select(parts => parts.Stations)) .IncludeOptimized(lot => lot.Parts.Select(parts => parts.Stations.Select(station => station.Tools))) .IncludeOptimized(lot => lot.Parts.Select(parts => parts.Stations.Select(station => station.Tools.Select(tools => tools.Measurements)))) .FirstOrDefault();

所以我试图过滤以仅抓取某些部分,然后在这些过滤的部分中,我想抓取与它们相关联的所有孩子的数据。我已经检查了与此相关的所有现有堆栈溢出文章,并且我所做的更改会导致 Z.EntityFrameworkPlus 包抛出一个通用异常,它没有提供任何细节(这就是上面的代码所做的),或者如果我使用常规的 EntityFramework 函数会为无效路径引发异常。

感谢您的帮助。

【问题讨论】:

    标签: c# performance entity-framework entity


    【解决方案1】:

    好的,在阅读了 Z.EntityFrameworkPlus 的文档后,我现在看到您不能在同一个 LINQ 语句中使用 IncludeFilter 和 IncludeOptimzed

    https://entityframework-plus.net/query-include-optimized

    我将 IncludeFilter 切换为 IncludeOptimzed 并且它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多