0

グループパラメーターはユーザーインターフェイスで変更できるため、GroupBy を Linq テーブルに動的に追加する正しい構文を探しています。

基本的に、変更可能なパラメーターの GroupBy を追加する Linq.EntitySet があります。

日、週、月、年

のような4つのクエリを書く代わりに

data.View.GroupBy(Function(x) x.Moment.Date).OrderBy(Function(x) x.Key).Select(Function(x) New With {.Date = x.Key, .Count = x.Count()})

data.View.GroupBy(Function(x) x.Moment.Week).OrderBy(Function(x) x.Key).Select(Function(x) New With {.Date = x.Key, .Count = x.Count()})

data.View.GroupBy(Function(x) x.Moment.Month).OrderBy(Function(x) x.Key).Select(Function(x) New With {.Date = x.Key, .Count = x.Count()})

data.View.GroupBy(Function(x) x.Moment.Year).OrderBy(Function(x) x.Key).Select(Function(x) New With {.Date = x.Key, .Count = x.Count()})

式ツリーを介して動的にグループを追加したいのですが、もっと簡単な方法はありますか?

アドバイスをありがとう!

4

1 に答える 1

0

驚いたことに、私が思っていたよりも簡単なようです!

    Private Function bar(x As Date) As Object
        Select Case ddlStatRange.SelectedValue
            Case 1
                Return x.Month
            Case 2
                Return x.Month
            Case 3
                Return x.Year
            Case Else
                Return x.Date
        End Select
    End Function

    Dim foo = data.View.GroupBy(Function(x) bar(x.Moment)).OrderBy(Function(x) x.Key).Select(Function(x) New With {.Date = x.Key, .Count = x.Count()}) 

いずれにせよ、誰かがより良いアイデアを持っている場合:D

于 2012-08-29T10:24:56.550 に答える