2010-06-09 17 views
0

Je travaille sur une page ASP.net qui utilise aussi ChartFX. Je dois extraire une ligne d'une table de base de données et la retourner de sorte que toutes les étiquettes de la ligne soient dans une colonne et que toutes les données de la ligne soient dans une colonne parallèle aux étiquettes.LINQ reformater en Table

Je voudrais vraiment faire cela en utilisant LINQ, puis créer une table en mémoire pour stocker ces valeurs jusqu'à ce que j'ai besoin de les utiliser. Que suggérez-vous tous?

+0

Je pense que cela dépend en grande partie de ce que la base de données que vous utilisez et comment vous y accédez, à savoir comment la ligne ressemble. Pouvez-vous spécifier cette information? – svick

+0

En outre, pourquoi voulez-vous le stocker dans la table en mémoire, would 'Dictionary <> 'suffire? – svick

+0

C'est une base de données SQL accessible via un modèle LINQ to SQL dans VS2008. Le dictionnaire <> pourrait faire l'affaire, je n'y avais pas encore pensé. –

Répondre

0

méthode à l'aide que je trouve à How would I get the column names from a Model LINQ?

var db = new DataContextType(); 
var members = db.Mapping.MappingSource 
         .GetModel(typeof(DataContextType)) 
         .GetMetaType(typeof(TableType)) 
         .DataMembers; 

var row = …; // select the desired row 

var namesAndValues = from member in members 
        select new 
        { 
         Name = member.Name, 
         Value = member.MemberAccessor.GetBoxedValue(row) 
        }; 
+0

J'ai trouvé un moyen d'obtenir les noms des colonnes. Une fois que j'ai les noms des colonnes, je vais simplement stocker tout dans une base de données, puis utiliser le pivot pour déplacer les colonnes vers les lignes. Merci pour la réponse. –