2009-06-25 4 views
1

Nous avons un système basé sur les événements auxquels les utilisateurs sont invités [UserInvite].Commande d'une liste d'objets par la propriété d'un autre objet en C#

Actuellement, j'ai une page qui liste tous les utilisateurs invités à un événement; ils peuvent être triés par diverses propriétés, telles que le nom de famille [ascendant et descendant]. Tout va bien et dandy, mais maintenant je dois trier en plus par une propriété UserInvite: DateEdited [again asc/desc]. J'ai utilisé une méthode d'extension qui prend une chaîne du nom de la propriété pour trier par, mais cela ne fonctionnera pas pour la propriété d'une autre classe.

Notes:

  1. UserInvite a une méthode pour obtenir par l'événement et l'utilisateur qui retourne toujours un UserInvite [ou null si a été trouvé sans invitation].
  2. eventId actuelle se tient dans la page principale ne peut donc être atteint sur la page qui répertorie les utilisateurs

Quelle est la meilleure façon de le faire?

Répondre

1

Y a-t-il une route entre Event et UserInvite? Si oui, marchez simplement la relation. En fait, l'approche plus simple est de nouveau exposer cette date à l'Event - à savoir

public DateTime InviteDate {get {return Invite.Date;}} // or similar 

et commande par InviteDate - mais vous pouvez également utiliser une chaîne comme « Invite.Date » et le diviser par des points - par exemple, here's quelque chose de similaire pour IQueryable<T> - bien qu'il ne gère pas null pour le moment.

+0

Belle réponse +1. –

+0

La seule solution de travail que j'ai trouvé était d'ajouter la propriété UserInvite dans la classe User. – Rich

Questions connexes