1

私のテーブルには日付フィールドがあり、そこからすべての異なる年を照会し、それらの年を同じテーブルの ACB スクリーン フィルターで使用したいと考えています。

これに必要なLinqコードを見つけようとしています。次のようなクエリを返すだけです。

2012年

2011年

2010年

これらの値をオート コンプリート ボックスの選択リストとして使用します。

どうもありがとう。

4

3 に答える 3

2

Date フィールドに null が含まれていない場合、このクエリは EF で実行されます。

    var years = (from row in ctx.YourTable
                 select row.DateField.Year).Distinct().AsEnumerable().Select(e => e.ToString());

これは IEnumerable< string > を返しますが、必要に応じて最後に .ToList() または ToArray() を追加します。

また、完全を期すために、 Date フィールドが null 可能である場合は、null 値を除外する必要があります。

    var years = (from row in ctx.YourTable
                 where row.DateField != null
                 select row.DateField.Value.Year).Distinct().AsEnumerable().Select(e => e.ToString());
于 2012-09-16T11:29:53.367 に答える
1

必要なことを実行できる唯一の方法は、カスタム RIA サービスを作成し、それをデータ ソースとして追加することです。初めてだと戸惑うかもしれませんが、実はとても簡単です。

このリンクは基本を説明します。次に、カイルが回答で示したLINQ構文を使用できます。

方法: 集計データに基づいて構築されたグラフを表示する

于 2012-09-17T13:46:55.627 に答える
0

AutoCompleteBox の選択リストをプログラムで設定することはできません。このSOの質問を参照してください。

_PreprocessQueryただし、メソッドで LINQ を使用できます。クエリ デザイナーを使用して空のクエリを作成し、[コードの記述] の横にある下向き矢印をクリックして、_PreprocessQuery方法を選択します。次に、@xeondev の LINQ コードを次のように使用します。

partial void Query1_PreprocessQuery(ref IQueryable<TableName> query)
{
    query = (from row in query
             where row.DateField != null
             select row.DateField.Value.Year).Distinct().AsEnumerable().Select(e => e.ToString());
}
于 2012-09-17T12:36:49.547 に答える