Je suis nouveau à LINQ et j'essaye de trier celui-ci. J'essaie d'obtenir des enregistrements pour plusieurs comptes (plusieurs ID de compte) et de trier les résultats en fonction de la date. Ce que j'ai actuellement est de mettre les résultats dans une liste de sorte que plusieurs lignes/compte sont contenues dans chaque élément de la liste.Comment joindre des enregistrements dans LINQ?
Ceci est proche mais pas exactement ce que je veux. Comment puis-je retourner des résultats tels que tous les résultats (c'est-à-dire, tous les enregistrements associés à chaque compte) sont triés par date et renvoyés comme tels.
J'imagine que c'est une sorte de jointure LINQ mais je ne suis pas sûr de ce que serait la syntaxe.
public List<StatusUpdate> GetFriendStatusUpdatesByAccountId(Int32 accountId)
{
List<StatusUpdate> result;
List<Friend> friends =
_friendRepository.GetFriendsByAccountId(accountId);
using (WorkbookDataContext dc = _conn.GetContext())
{
IEnumerable<StatusUpdate> statusUpdates = null;
foreach (Friend friend in friends)
{
Friend friend1 = friend;
statusUpdates = from su in dc.StatusUpdates
where su.AccountId == friend1.MyFriendsAccountId
orderby su.CreateDate descending
select su;
}
if (statusUpdates != null) result = statusUpdates.ToList();
}
return result;
}
Merci d'avance.
EDIT:
Merci pour votre suggestion. Je l'ai retravaillé un peu afin d'avoir accès à OrderByDescending mais ne peut pas sembler figurer le « ne peut pas résoudre le symbole » problème pour ami et su (ci-dessous en majuscules). Je me demandais si vous supposiez que "ami dans les amis" accédait à ami comme la table LINQ (qui donnerait nous l'accès à MyFriendsAccountId) et non Liste (qui ne nous donne pas directement accès à MyFriendsAccountId? En tout cas, je suis un LINQ newb donc, peut-être que je aboie le mauvais arbre En tout cas, AMI dans les amis et SU jettent le "ne peut pas résoudre symbole erreur" et j'apprécierais des suggestions.Merci une tonne pour vos commentaires ...
public List<StatusUpdate> GetFriendStatusUpdatesByAccountId(Int32 accountId)
{
List<StatusUpdate> result;
using (WorkbookDataContext dc = _conn.GetContext())
{
List<Friend> friends =
_friendRepository.GetFriendsByAccountId(accountId);
IEnumerable<StatusUpdate> statusUpdates =
from su in dc.StatusUpdates
join friend in friends
on FRIEND.MyFriendsAccountId
equals SU.AccountId
select su;
result =
statusUpdates.OrderByDescending
(su => su.CreateDate).ToList();
}
return result;
}
voir ma mise à jour réponse, le correctif est juste pour passer le friend.MyFriendAccountId et su.AccountId dans la clause de jointure – theburningmonk
merci - cela a fait le travail. J'ai une dernière erreur avec celui-ci posté ci-dessous ... encore en train de travailler dessus. –