Entity Framework, используя предложение Where для вложенного объекта - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь отфильтровать дочерние объекты при извлечении, используя следующее

var loanExtractExample = be.LoanCategoryMonitors
                .Where(lcm => lcm.LoanNumber == 5000435)
                .Include(l => l.Loan)
                .Include(le => le.LoanExtracts)
                .Select(le => le.LoanExtracts.Borrowers.Where(b => b.BorrowerNum == 1))
                .ToList();

, но когда я проверяю коллекцию сущностей, появляются 2 заемщика.Один с BorrowerNum 1 и один с BorrowerNum = 3.

Чего мне не хватает, чтобы иметь возможность сократить заемщиков до нужного?

1 Ответ

0 голосов
/ 07 июня 2018

Выбор для заемщиков, который, я полагаю, вернул бы заемщиков для мониторов категорий ссуд, в которых у монитора был заемщик с идентификатором 1. Я считаю, что вы ищете:

var matchingBorrowers = be.LoanCategoryMonitors
                .Where(lcm => lcm.LoanNumber == 5000435)
                .SelectMany(le => le.LoanExtracts.Borrowers) // Borrowers for loan extracts against loan 5000435...
                .Where(b => b.BorrowerNum == 1)) // Of those borrowers, those with BorrowerNum = 1.
                .ToList();

Включения не являютсянеобходимо, так как вы не извлекаете монитор категории ссуды, но вы можете добавить любые операторы .Include () для дочерних ссылок возвращаемых заемщиков.(после .SelectMany())

...