2011-09-14 19 views
-1

私は、日付フィールドと時刻フィールドを持つテーブルを持っています。その月とその月に表示されるレコード数でグループ化された結果セットを取得したいと思います。これはLINQでどのように行うことができますか? このようなものです。月ごとのLinqグループ

データ。

2011年10月10日00:00:10:000
2011年10月11日00:00:20:000
2011年11月1日00:00:10:000
2011年11月10日00:00:40:000私は

2011年10月1日00検索したい

:00:30:000
2011年11月1日00:50:00助けを000

Thank`s。

私はこのようなものを試しています。

var monthely = 
    from u in sqlDataContract.TimeTrickTables 
    group u by u.EntryDate.Value.Month into g 
    select new 
    { 
    EntryDate = g.Key, 
    ETime = g.Aggregate(TimeSpan.Zero, (subtotal, t) => subtotal.Add((TimeSpan)t.ETime)) 
    }; 

が、それはクエリ演算子「集約」が

+0

カスタム凝集体はLinq2SQLでサポートされていないサポートされていないこの例外をスローします。私の更新。 – Magnus

答えて

5
from u in TimeTrickTables 
group u by u.EntryDate.Value.Month into g 
select new 
{ 
    Month = g.Key, 
    Count = g.Count(), //Nr. of records 
    Time = new TimeSpan(g.Sum(x => x.ETime.Ticks)) //Total time 
} 
+0

'新しいTimeSpanを試してください(g.Sum(x => x.ETime.Ticks))' – Magnus

+0

ありがとう – Vero009

関連する問題