web-dev-qa-db-fra.com

comment puis-je obtenir le compte en linq

J'ai une table appelée products avec des colonnes:

productid ,
productname,
productprice
categoryid

Mon problème est que je veux obtenir le nombre de produits en fonction du nom du produit ainsi que des détails. Je veux afficher les données dans DataGridView. Comment puis-je connaître le nombre de produits pour un seul nom de produit comme ci-dessous?

productid        productname          productavailable        productprice
--------------------------------------------------------------------------
1                product A            2 products(product A)   100
2                product B            5 Products(product B)   200

Comme le tableau ci-dessus, je dois afficher dans DataGridView. J'utilise LINQ et C # et mon DbContext nom est tsgdbcontext.

19
Enigma State

Utilisez GroupBy avec une clé qui contient vos propriétés de regroupement. Puis select sur les propriétés clés ainsi que le nombre de chacun du regroupement.

var query = tsgdbcontext.Products
                        .GroupBy(p => new {
                            p.ProductId,
                            p.ProductName,
                            p.ProductPrice
                         })
                        .Select(g => new {
                            g.Key.ProductId,
                            g.Key.ProductName,
                            g.Key.ProductPrice,
                            Available = g.Count()
                        });
41
tvanfosson

Je ne suis pas sûr de comprendre exactement + de faire quelques hypothèses, mais voici un exemple de requête linq qui produit un décompte basé sur des critères de sélection arbitraires (id = 2 et prix supérieur à 100) ...

int count = (from p in tsgdbcontext.Products
             where p.productid == 2 && p.productprice > 100
             select p).Count();
31
blins