LINQ “.Inclure” orderby dans la sous-requête
J'ai l'entité ci-dessous de code, qui renvoie à tous les utilisateurs et "comprend" l'ensemble de leurs demandes d'échantillons:
var userQuery = from u in _IntranetContext.UserSet.Include("SampleRequests")
orderby u.LastName ascending
select u;
Chaque utilisateur dispose de plusieurs SampleRequests. Chaque SampleRequest a un ID# (juste un entier: 1, 22, 341, etc). Le ci-dessus LINQ to entities l'accaparement des utilisateurs et de leurs SampleRequests comme suit:
User1: 33, 22, 341, 12
User2: 24, 3, 981
Comme vous pouvez le voir le SampleRequest ID# ne sont pas dans un ordre croissant. Je voudrais les résultats dans l'ordre.
Comment puis-je mettre le orderby contrainte sur le SampleRequests ID#
Veuillez noter: SampleRequestId est une propriété de la SampleRequest...pas une propriété de l'objet Utilisateur
OriginalL'auteur | 2009-07-20
Vous devez vous connecter pour publier un commentaire.
Je peux pensons actuellement de deux options pour ce que vous voulez. Vous pouvez les sélectionner dans une nouvelle classe, où l'utilisateur et les demandes connexes sont des propriétés:
Cela va entraîner des problèmes si vous vouliez à ce type de retour, comme c'est anonyme.
Vous pouvez également sélectionner cette en un nouvel objet utilisateur, similaire à ceci:
Cela retourne une collection d'objets Utilisateur, mais la mise à jour des objets dans la base de données peut causer des problèmes.
Je trouve cela très laid si votre Utilisateur de la classe a de très nombreuses propriétés. Sera-ce sous-groupe.ToList() faire beaucoup de transfert entre la logique métier et sql-server? Une solution pourrait être juste chercher SampleRequests sans ordonnance et ensuite de les trier plus tard en c#-code (=mémoire).
Vous devez créer une base de données triées indice de UserSet.LastName. Et un autre pour SampleRequests avec (clé étrangère à UserSet et SampleRequestId)
OriginalL'auteur Ryan Versaw
Suffit d'ajouter une commande de paramètre pour le tri:
C'est la seule réponse que je vois pour ce que vous avez décrit. Je pense que nous avons besoin de plus d'informations première.
OK j'ai réécrit ma question - je pense qu'il pourrait être un peu plus clair
OriginalL'auteur LBushkin
Edit: Boisée par <15 secondes.
OriginalL'auteur Sam Harwell