C # Aplicación externa en LINQ

¿Cómo puedo lograr la aplicación externa en LINQ? Estoy teniendo un pequeño problema.

Aquí está la consulta SQL que estoy usando.

SELECT u.masterID ,u.user ,h.created FROM dbo.Users u OUTER APPLY (SELECT TOP 1 * FROM UserHistory h where h.masterID = u.masterID ORDER BY created DESC) h 

 from u in Users join UserHistory on u.masterID equals h.masterID into h select new {u.masterID, u.user, h.created.OrderByDescending().First()} 
 from u in Users join UserHistory on u.masterID equals h.masterID into h select new { u.masterID, u.user, Created = h.Select(x => x.created).OrderByDescending(c => c).FirstOrDefault() } 

O bien, con una asociación:

 from u in Users let created = u.UserHistories.Select(x => x.created).OrderByDescending(c => c).FirstOrDefault() select new { u.masterID, u.user, Created = created } 

Aplicación externa produce resultados de la unión externa izquierda,
la consulta debe ser:

 var q = from u in db.Users join h in db.UserHistory on u.masterID equals h.masterID into ps from p in ps.DefaultIfEmpty() select new { masterID = u.masterID ,user = u.user ,created = ps.OrderByDescending(x=>x.created).FirstOrDefault()==null?null:ps.OrderByDescending(x=>x.created).First().created };