Click here to Skip to main content
11,933,905 members (36,445 online)
Rate this:
Please Sign up or sign in to vote.
See more: C# LINQ Grouping
Hello All,

I am facing an prob please help.

I have following class.
class Product
        public int ProdCode { get; set; }
        public decimal NetAmount { get; set; }
        public List<int> BillDetailIds { get; set; }

In db there are two tables:

Table 1: Master table : containing following columns
BillId (PK), BillDate
Table 2: Details Table: containing following columns
BillDetailId (PK), BillId (FK), ProdCode, NetAmount

I want to show list from details table group by with Prodcode with sum of its amount. so i did below

var prodlist=Db.Details..GroupBy(x=>new{x.ProdCode}).select(x=>
                 new Product(){
                    ProdCode = Convert.ToInt32(x.FirstOrDefault().ProdCode),
                    NetAmount = x.Sum(s => s.Amount),

I'm stuck in BillDetailIds.
I need to store BillDetailIds on which groups is performed to create an Product object.

Help me please, thanks in advance
Posted 8-Aug-12 17:35pm
Edited 8-Aug-12 17:40pm
Wes Aday104.2K

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

You could use this to resolve the problem:

 var prodlist = Db.Details.GroupBy(x=>new {x.ProdCode}).Select(x=>new Product()
   ProdCode = Convert.ToInt32(x.FirstOrDefault().ProdCode),
   NetAmount = x.Sum(s => s.Amount),
   BillDetailIds = Db.Details.Where(
                 z=>z.ProdCode == x.FirstOrDefault().ProdCode)

I hope this helps you

Kind regards
tanishtaman 9-Aug-12 13:41pm was so simple but didn't strike in my mind. thanks for replying.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web01 | 2.8.151126.1 | Last Updated 9 Aug 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100