2016-11-28 5 views
1

次の文を使用していくつかのdbデータをグループ化しようとしています。等価であるGroupbyは次にlambda/linqを使用してデータを選択します

var res = from messages in db.Messages 
group messages by messages.Message_Sent_Date into grp 
select new { message_count = grp.Sum(g => g.Message_Count), message_cost = grp.Sum(g => g.Customer_Price) }; 

var query = db.Messages.Where(m => m.Message_Sent_Date != null && m.Message_Count != 99) 
         .GroupBy(d => d.Message_Sent_Date) 
         .Select(g => new { 
           message_count = g.Sum(c => c.Message_Count), 
           message_cost = g.Sum(c => c.Customer_Price), 
          }); 

私の質問は、選択したオブジェクト、すなわちMESSAGE_COUNTとmessage_cost 2つのフィールドを持っている、です。基本的にデータがグループ化される列である第3フィールド 'Message_Sent_Date'を追加したい場合それ、どうやったら出来るの?

答えて

1

スニペットは、このようになりますので、各グループのMessage_Sent_Dateになります使用g.Key

// Modified select after the GroupBy clause 
.Select(g => 
     new 
     { 
      message_count = g.Sum(c => c.Message_Count), 
      message_cost = g.Sum(c => c.Customer_Price), 
      Message_Sent_Date= g.Key 
     }); 
+1

恐ろしいです。これは動作します! – psyoptica

+0

お気軽にお気軽にお手伝いしてください...! –

関連する問題