Normalement, je fais ceci:Comment lancer un résultat Linq Dynamic Query en tant que classe personnalisée?
var a = from p in db.Products
where p.ProductType == "Tee Shirt"
group p by p.ProductColor into g
select new Category {
PropertyType = g.Key,
Count = g.Count() }
Mais je code comme ceci:
var a = Products
.Where("ProductType == @0", "Tee Shirt")
.GroupBy("ProductColor", "it")
.Select("new (Key, it.Count() as int)");
Quelle syntaxe pourrais-je modifier pour produire des résultats identiques, à savoir, comment dois-je faire une projection de la catégorie de la deuxième déclaration Linq?
Je sais aussi bien que g et il sont identiques et représentent l'enregistrement de la table entière, et que
je tire tout le dossier juste pour faire un compte. J'ai besoin de réparer ça aussi.
Edit: Marcelo Cantos a souligné que Linq est assez intelligent pour ne pas extraire de données inutiles. Merci!
Avez-vous vérifié que vous tirez réellement l'ensemble du dossier? Je ne connais pas du tout LINQ dynamique, mais je ne vois pas pourquoi il ne pourrait pas être aussi intelligent à ce sujet que LINQ-to-SQL statique. –
Je pense que Cantos a raison de dire combien il tire. –