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
.
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()
});
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();