У меня есть модель EF Core 2.1 Code First с отношением типа «родитель-ребенок» между двумя классами:
class Parent
{
public int Id {get; set;}
public string Name {get; set;}
}
class Child
{
public int Id {get; set;}
public string Description { get; set; }
public Parent Parent { get; set; }
}
Я хочу загрузить определенного Родителя и убедиться, что все его дочерние объекты также загружены. Однако у Child нет свойства навигации, и я не могу изменить классы, поэтому не могу добавить его.
dbContext.Parents
.Include(p => p.???)
.Find(1);
Полагаю, я мог бы сделать второй запрос, где я смотрю в обратном порядке:
dbContext.Children.Where(c => c.Parent.Id == loadedParent.Id)
но это не кажется очень эффективным, особенно когда вы загружаете нескольких родителей и делаете что-то ужасное, как это:
var parentIds = loadedParents.Select(p => p.Id);
var children = dbContext.Children.Where(c => parentIds.Contains(c.Parent.Id));
Есть ли способ убедиться, что сущности загружаются, когда у вас есть только свойство навигации "дочерний к родителю"?