Trouver où extraire les sommes ou autres agrégats dans le reste de mon code m'a déconcerté, jusqu'à ce que je me rappelle que la variable que j'ai construite était un Iqueryable. Supposons que nous ayons une table dans notre base de données composée de commandes, et que nous voulions produire un résumé pour la société ABC :
var myResult = from g in dbcontext.Ordertable
group p by (p.CUSTNAME == "ABC") into q // i.e., all of ABC company at once
select new
{
tempPrice = q.Sum( x => (x.PRICE ?? 0m) ), // (?? makes sure we don't get back a nullable)
tempQty = q.Sum( x => (x.QTY ?? 0m) )
};
Maintenant la partie amusante -- tempPrice et tempQty ne sont déclarés nulle part mais ils doivent faire partie de myResult, non ? Accédez à eux comme suit :
Console.Writeline(string.Format("You ordered {0} for a total price of {1:C}",
myResult.Single().tempQty,
myResult.Single().tempPrice ));
Un certain nombre d'autres méthodes Queryable pourraient également être utilisées.