J'essaie d'écrire la requête suivante dans LINQ, mais je n'arrive pas à l'obtenir correctement.Requête LINQ avec un nombre spécifié de lignes dans un problème de sous-requête
select p.*
from Person p
inner join PersoniPhones i ON p.PersonID = i.PersonID
where p.PersonID in
(
SELECT PersonID
FROM
(
SELECT Top 10 PersonID, iPhoneID
FROM iPhone
ORDER BY LastPlayedDate DESC
) as t
)
J'ai essayé ce qui suit, mais il ne retourne pas correctement
var tenIPhones = from phone in context.PersonIPhones
.OrderByDescending(i => i.LastPlayedDate)
.Take(10)
select new { phone.PersonID, phone.IPHoneID};
var people = from p in context.Person
join t in tenIPhones on p.PersonID equals t.PersonID
select p;
Toutes les idées?
Eh bien pour une chose que vous définissez 'I' en deux endroits :) –
Autre que cela, il regarde un coup d'oeil comme il devrait fonctionner correctement (notez que la jointure interne dans le SQL original n'est pas réellement employée pour n'importe quoi) –