EFCore Включить без свойства навигации - PullRequest
0 голосов
/ 08 февраля 2019

Как я могу сделать свойство Включить без навигации?
Я могу использовать свойство навигации, чтобы получить подкатегории, но после этого мне нужно получить все ингредиенты для этих подкатегорий (а у меня нет навигации.свойство для ингредиентов из-за совокупных корневых границ).И я не знаю, как мне их получить.

Database Код

var cat = _context.Categories.Include(s => s.SubCategories).ToList();

1 Ответ

0 голосов
/ 08 февраля 2019

Насколько я знаю, вы не можете, не с Включить.Для этого вам нужно использовать отдельный запрос / запрос, используя связанный ключ в качестве предложения.

Но если вам нужно ссылаться на него таким образом, почему бы не сделать его свойством навигации?Это как раз то, для чего они нужны.

Итак, если у вас есть идентификатор категории, то именно так вы будете перебирать ингредиенты.Вы должны быть в состоянии работать с этим, чтобы получить, куда вам нужно идти:

var catId = 999;
foreach(var subCat in _context.SubCategories.Where(u => u.CategoryId == catId))
{
    foreach(var ingredient in _context.Ingredients.Where(u => u.SubCategoryId == subCat.Id))
    {
        // do work on 'ingredient'
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...