2010-06-10 11 views
6

Comment puis-je obtenir une application externe dans LINQ? J'ai un petit problème.C# Outer Appliquer dans LINQ

Voici la requête SQL que j'utilise.

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 

Répondre

3
from u in Users 
join UserHistory on u.masterID equals h.masterID into h 
select new {u.masterID, u.user, h.created.OrderByDescending().First()} 
12
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() 
} 

Ou, avec une association:

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