2

LINQクエリによって返された行のグループから最も早い年を見つけようとしています。ActivationDateは、日時値としてDBに保存されます。

日付だけを取得するために別のクエリを作成できることは知っていますが、他のいくつかの目的で使用されるため、既存のクエリの結果を使用したいと思います。

IEnumerable<MonitoringPanel> panels = from rows in db.MonitoringPanels
                                      where rows.DealerEntity == dealerIDint
                                      select rows;

ただし、これはエラーをスローし続けます:

var testDate = panels.Min().ActivationDate;

エラー:

System.ArgumentException was unhandled by user code.

最も低いPanelNumner(intとして格納されている)を選択しようとしてもエラーがスローされますが、以下は機能します。

var testDate = panels.FirstOrDefault().ActivationDate;

解決

        DateTime testDate = (DateTime)panels.Min( thing => thing.ActivationDate);
        int lowYear = testDate.Year;
4

2 に答える 2

3

Enumerable が perimative 型でない限り、ラムダ式を追加して、使用するクラスのプロパティを指定する必要があります。試す

var testDate = panels.Min(x => x.ActivationDate);
于 2012-09-18T14:29:52.283 に答える
1

Min()最小の何を探すべきかをメソッドに伝える必要があると思います。最小のフィールドはどれですか。

var testDate = panels.Min(panel => panel.ActivationDate);
于 2012-09-18T14:30:41.997 に答える