1

日付の範囲を含む結果セットになる LINQ クエリを作成したいと考えています。2012-09-01 と 2012-09-05 を指定すると、次を含む結果セットが返されるはずです。

  • 2012-09-01
  • 2012-09-02
  • 2012-09-03
  • 2012-09-04
  • 2012-09-05

すべての日付が含まれていない可能性がある後続のクエリの結合で使用したいので、これが必要です。ただし、他のクエリのいずれかが結果を返したかどうかに関係なく、最終結果に間隔内のすべての日付が含まれるようにします。

LINQ to Entities を使用しています。

実際の例として、次のようになります。

from p in projects
where p.StartDate > dateFrom && p.StartDate < dateTo
// somehow 'select' every date between dateFrom and dateTo,
// so you get one row in the resultset for each date in between.
4

2 に答える 2

0

whereまず、次の行に沿った句が必要なように思えます。

where foo.Date >= startDate && foo.Date < endDate

「9月5日の間」の日付/時刻値を取得するために、排他的な境界(たとえば、9月6日の真夜中)を作成endDateます。

次に、結果を日付でグループ化できます...結果のない日付を処理するために、.NET (LINQ to Objects) で後処理を行います。これは、Entity Framework コード内で行うよりもはるかに簡単である可能性があります。

于 2012-09-27T09:45:12.710 に答える