J'ai une requête T-SQL 2005 qui retourne:Un pivot dynamique utilisant LINQ est-il possible?
pid propertyid displayname value
----------- ----------- --------------- ---------------
14270790 74 Low Price 1.3614
14270790 75 High Price 0
14270791 74 Low Price 1.3525
14270791 75 High Price 0
14270792 74 Low Price 1.353
14270792 75 High Price 0
14270793 74 Low Price 1.3625
14270793 75 High Price 0
14270794 74 Low Price 1.3524
14270794 75 High Price 0
Ce que je voudrais faire est essentiellement pivot sur le terrain displayname
, production, espérons:
pid Low Price High Price
14270790 1.3614 0
14270791 1.3525 0
14270792 1.353 0
14270793 1.3625 0
14270794 1.3524 0
(Je ne sais pas comment le PropertyID le champ serait sorti, donc je l'ai laissé de côté (espérait qu'il serait simplement assis à côté des champs Prix bas et Prix élevé, pour indiquer leurs ID, mais je ne pense pas que cela fonctionnera.)
Le problème est que le contenu de la displayname
champ d'origine est dynamique - il est produit à partir d'une jointure avec un PropertyName' table, so the number of pivoted columns is variable. It could therefore contain
Prix élevé ,
Prix bas ,
Open and
Fermer`, en fonction de ce que la jointure avec cette table renvoie.
Il est, bien sûr, relativement facile (quel que soit le problème que j'aie à écrire la requête initiale!) De produire ce pivot dans une requête fixe ou un proc stocké. Cependant, est-il possible d'obtenir LINQ pour générer une requête SQL qui nommerait chaque colonne à produire plutôt que d'avoir à écrire une requête dynamique (probablement dans une procédure stockée) qui répertorie les noms de colonnes?
Merci,
Matt.
Cela peut-il être retourné dans un 'IList' ou 'IQueryable'? – uikrosoft