Предположим, у меня есть два класса, которые имеют отношение многие-к-одному
public class ParentObject{
public int Id { get; set; }
public List<ChildObject> Children { get; set; }
...
}
public class ChildObject{
public int Id { get; set; }
public ParentObject Parent { get; set; }
}
Когда я добавляю миграцию и обновляю базу данных, в результате получаются две таблицы:
- ParentObject
- ChildObject
- Id: int
- ParentObjectId:int
- ...
Теперь я хочу найти всех потомков определенного родителя.В SQL я могу сделать это, не подключаясь к родительской таблице, просто запросив столбец ChildObject.ParentObjectId .
SELECT * FROM [ChildObject] c WHERE c.ParentObjectId = parentId
Но в EF Core единственный способ, которым я могуя обнаружил, что для этого нужно использовать .Include(c => c.Parent)
, а затем .FirstOrDefault(c => c.Parent.Id == parentId)
.Это создает соединение с таблицей ParentObject .
Можно ли запросить таблицу ChildObject без .Include()
?