Je passe un moment difficile à trouver une solution à ce qui, j'en suis sûr, est un problème simple. J'ai commencé une application avec des données dans des listes d'objets.Comptabiliser les occurrences de valeurs sur plusieurs colonnes
Il est des objets pertinents utilisés pour ressembler à ceci (très simplifié):
class A {
int[] Nums;
}
et
List<A> myListOfA;
que je voulais compter les occurrences de valeurs dans le tableau des membres de toute la liste.
Je trouve cette solution en quelque sorte:
var results
from a in myListOfA
from n in a.Nums
group n by n into g
orderby g.Key
select new{ number = g.Key, Occurences = g.Count}
int NumberOfValues = results.Count();
Cela a bien fonctionné et j'ai pu générer l'histogramme je voulais de la requête. Maintenant, j'ai converti à l'aide d'une base de données SQL. La table que j'utilise ressemble maintenant à ceci:
MyTable {
int Value1;
int Value2;
int Value3;
int Value4;
int Value5;
int Value6;
}
J'ai un DataContext qui mappe sur le DB.
Je ne peux pas comprendre comment traduire l'instruction LINQ précédente pour travailler avec cela. Je l'ai essayé:
MyDataContext myContext;
var results =
from d in myContext.MyTable
from n in new{ d.Value1, d.Value2, d.Value3, d.Value4, d.Value5, d.Value6 }
group n by n into g
orderby g.Key
select new { number = g.Key, Occurences = g.Count() };
J'ai essayé quelques variations sur le tableau construit comme l'ajout .AsQueryable() à la fin - quelque chose que j'ai vu ailleurs. J'ai essayé d'utiliser le groupe pour créer le tableau de valeurs mais rien ne fonctionne. Je suis un débutant relatif quand il s'agit de langues de base de données. Je ne trouve tout simplement aucune idée sur le web. Peut-être que je ne pose pas la bonne question. Toute aide est appréciée.
J'ai essayé - je reçois un NotSupportedException qui dit tableaux ne sont pris en charge Construits pour « Contient » Quel que cela signifie. – Eric