Получение нескольких записей с помощью Entity Framework при соединении таблиц "Многие-ко-Многим"
Всем доброго времени суток!
У меня имеется следующая таблица "Сотрудника":
public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public string Address { get; set; }
public System.DateTime Birthday { get; set; }
public virtual ICollection<History> History { get; set; }
И таблица "Должностей":
public int PostID { get; set; }
public string Post { get; set; }
public int Salary { get; set; }
public virtual ICollection<History> History { get; set; }
Так как тут используется отношение Многие-ко-Многим, имеется также связующая таблица "История" (History):
public int EmployeeID { get; set; }
public System.DateTime DateOfEmployemnt { get; set; }
public System.DateTime DateOfDismissal { get; set; }
public int PostID { get; set; }
public virtual Employees Employees { get; set; }
public virtual PostsTable PostsTable { get; set; }
Помимо связующих полей EmployeeID и PostID, в таблице History также имеется два поля "дата устройства" и "дата увольнения".
Так вот, мне нужно вывести информацию о каждом сотруднике вместе со всеми должностями, которые он когда-либо занимал. Вот что я написал:
var x = (from tempE in DbContext.Employees
from tempH in tempE.History
select new
{
tempE.FirstName,
tempE.SecondName,
tempE.Address,
tempE.Birthday,
DatesOfEmployemnt = tempE.History.Select(m => m.DateOfEmployemnt),
DatesOfDismissal = tempE.History.Select(m => m.DateOfDismissal),
Posts = ???
}).ToList();
Как видите, у меня почти всё получилось, за исключением вывода названий должностей (поле Post). Никак не могу понять, как это сделать. Не могли бы вы мне помочь? Может, у меня вообще неверный подход?
Источник: Stack Overflow на русском