C# Entity Framework Pagination Дети Включает - PullRequest
0 голосов
/ 16 апреля 2020

Я ищу самый быстрый способ сделать следующую операцию. Что мне нужно для выполнения sh, так это то, что у меня есть экран, на котором отображаются «части», которые определены внутри «лота». У каждой части есть объекты станции, и у каждой станции есть объекты инструментов, и у каждого инструмента могут быть измерения.

Моя проблема в том, что я не могу заставить работать нумерацию страниц. Входящее смещение равно 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 выдает исключение generi c, которое не предоставляет подробностей (что и делает приведенный выше код), либо если я использую обычные функции EntityFramework, он выдает исключение для неверного пути.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 16 апреля 2020

Хорошо, после прочтения документов для Z.EntityFrameworkPlus теперь я вижу, что вы не можете использовать IncludeFilter и IncludeOptimzed для одного и того же оператора LINQ

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

Я переключился IncludeFilter для IncludeOptimzed, и это работает.

...