Есть много способов сделать что-то с LINQ, иногда я обнаруживаю, что если мне трудно найти решение, использующее комбинацию существующих методов расширения, я просто напишу соединение (как выбудет в sql) с помощью LINQ.Приведенное ниже соединение не требует фактической части «присоединение к», поскольку EF будет использовать ваши существующие сопоставления (навигационные свойства) для создания объединения для вас.
var query = from a in Ta
from b in Tb
from c in Tc
where C.Id == myParam
select new { A = a, B = b, C = c};
Отсюда у вас есть анонимный тип, который имеетданные из всех трех таблиц.Самое приятное то, что EF выполняет автоматическую фиксацию ваших объектов, то есть вы можете вернуть только A из вашего метода и пройти через него, чтобы получить B и C.