Performance sur le chargement des données LINQ/WPF
Bonjour à tous !
Je récupère l'ensemble des noms d'une machine en deux requêtes
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| _DbAnance = new AnanceDataContext();
_Hcs = new ObservableCollection<HC>();
var HcList = from Hc in _DbAnance.HC select Hc;
foreach (HC MonHc in HcList)
{
var CustomHcName = (from PrgHc in _DbAnance.PRG_HC
join Prg in _DbAnance.T_ARBO_PRG on PrgHc.PRG_ID equals Prg.PRG_ID
where PrgHc.HC_ID == MonHc.HC_ID
select new { CustomHcName=Prg.PRG_ROOT+PrgHc.HC_ANUM }).ToList();
foreach (var Name in CustomHcName)
MonHc.CustomHcName += Name.CustomHcName;
_Hcs.Add(MonHc);
} |
comme on peut le voir c'est pas très performant mais pratique puisque je peux faire un foreach directement vue que je recupère que des données de mes machines (HC)
Mais je sais que je peux faire cette requete :
Code:
1 2 3 4
| var HcList2 = from Hc in _DbAnance.HC
join PrgHc in _DbAnance.PRG_HC on Hc.PRG_ID equals PrgHc.PRG_ID
join Prg in _DbAnance.T_ARBO_PRG on PrgHc.PRG_ID equals Prg.PRG_ID
select new{Hc, HcName = Prg.PRG_ROOT+PrgHc.HC_ANUM } ; |
Mais du coup je peux plus faire de foreach(HC ....) vu que le type de HcList2 est anonyme
Donc je pourrais faire un foreach(var MonHc in HcList2)
Seulement je sais pas comment je peux recupérer mes Hcs puis modifier ma variable CustomHcName comme dans la solution 1
Si vous avez des idées .... Personnellement j'ai pas trouvé d'exemple similaire sur le net..
Merci d'avance !!