イベントというテーブルがあり、これらはEndDate
列の例です。
これらのイベントから月を抽出しようとしていますが、次のようにしたいと思います11, 12, 1
(現在の年から11と12、来年から1は2013年)。
var ev = db.Events.Select(d => new { Month = d.StartDate.Value.Month,
EndDate = d.EndDate })
.Where(d => (d.EndDate >= DateTime.Now
|| ( d.EndDate.Value.Day == DateTime.Now.Day
&& d.EndDate.Value.Month >= DateTime.Now.Month) ))
.OrderBy(d => d.EndDate.Value.Year)
.Select(d => new { Month = d.Month }).Distinct();
さて、なぜこのクエリが機能しないのかわかりません。それは月を次のように抽出します:1, 11, 12
もちろん、これは私が望むものではありません...
where
追伸:からのイベントのみをフィルタリングする句は無視できますnow on
。