2008-11-04 8 views
0

J'ai une situation d'héritage assez standard dans mon projet LINQ-to-SQL actuel. J'ai une classe de base appelée 'Party' et des classes appelées 'Individual' et 'Organization' qui en héritent. Ce que je veux atteindre semble (et est probablement) assez simple. Je souhaite retourner une liste d'organisations triées par nom d'entreprise. Le problème est que le nom de la société ('CoName') est un membre de la classe 'Organization', pas la classe 'Party'.Comment utiliser "Trier par" pour trier sur une propriété d'un type hérité dans LINQ-to-SQL?

Mon actuelle, la requête est ... non triés

oClients = (From P In ERM.Parties Where TypeOf (P) Is Organisation) 

Ce que je voudrais faire est ce ...

oClients = (From P In ERM.Parties Where TypeOf (P) Is Organisation Order By CoName) 

... mais bien sûr, cela ne fonctionne pas car la propriété 'CoName' n'est pas membre de la classe 'Party'.

Toute aide serait grandement appréciée!

Répondre

4

Utilisez l'opérateur OfType<>():

ERM.Parties.OfType<Organisation>().OrderBy(p => p.CoName) 
+0

Il est plus d'une méthode qu'un opérateur. Mais oui. –

+0

Ça ne marche pas pour moi. –

+0

@AshishJain: :-( –

Questions connexes