У меня есть две таблицы. Родительская таблица и таблица ссылок, в которой хранятся идентификаторы. Родительская таблица имеет связанные данные от себя. Вот модели:Получение всех связанных объектов через связанную таблицу. Entity Framework
public class People
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List<Relation> Relations { get; set; }
}
public class Relation
{
public int Id { get; set; }
public int ParentPeopleID { get; set; }
public int ChildPeopleID { get; set; }
public People People { get; set; }
}
Некоторые тестовые данные И сопоставляются им нравится эта
HasRequired(p => p.People).WithMany(p => p.Relations).HasForeignKey(p => p.ParentPeopleID);
Когда я звоню
var Peoplelist = MyDbContext.People.Include(p=>p.Relations.Select(r=>r.People)).Where(p=>p.Id==1).ToList();
Она возвращает себя не связанных людей. В моем случае он должен возвращает людей с идентификаторами: 2,3,4, но возвращает три человека с идентификатором 1
я могу получить то, что мне нужно от MyDbContext.Relation, но потребность, MyDbContext.People
Что я делать не так? Есть ли другой способ сделать это?
'Include' предназначен только для поиска загружаемых навигационных свойств, это не влияет на результат запроса. Ваш примерный запрос должен возвращать только один объект с идентификатором 1. Похоже, вы хотите получить список дочерних элементов определенного объекта? –