Я думаю, вы должны сначала увидеть, если ваша модель определила свойства навигации для нужных вам объектов:
public class Machine {
public int ID {get;set;}
//...
//Navigation Properties
public IList<Wheel> Wheels {get;set;}
public IList<Charateristic> Charateristics {get;set;}
}
В этом случае ваш запрос будет:
var query= context.Machines.Include(m=> m.Wheels)
.Include(m=>m.Charateristics)
.Where(x => x.param == 2)
.Take(5)
.ToList();
Методы Include
помогают создать запрос, извлекающий нужные данные из связанной таблицы.
Если вы не определили свойства навигации, что я настоятельно рекомендую, вы можете сделать группу присоединяется
var query= from m in context.Machines
join c in context.Charateristics on m.Id equals c.MachineId into gc
join w in context.Wheels on m.Id equals w.MachineId into gw
select new {Machine= m, Wheels= gw, Charateristics=gc };
var result= query.Take(5).ToList();