It seems there is a problem with code that runs with Linq-to-Sql and Linq-to-Object.
I solved it with the following:
var result = from p in this.context.AirPositions
join a in this.context.Airplane on p.asset_id equals a.id
let driver = (from dd in this.context.DriversPositions.Where(u => u.position_id == p.id)
join d in this.context.Drivers on dd.driver_id equals d.id
select d).FirstOrDefault()
orderby p.timesent descending
select new PositionViewModel() {...}
Hope this helps other people :)