2012年2月7日

變態地追求要表現出日期差異的感覺

要撈在N日前開始報名的通知list出來發送..

[以前]
var list = dcx.XXX.Where(r => (r.StartDate - DateTime.Today).Days == beforeDays);

用的是TimeSpan

[後來]
DateTime targetDate = DateTime.Today.AddDays(beforeDays);
var list = edm.XXX.Where(r => r.StartDate == targetDate);

因為EF不給用Date玩~ 但這樣沒有"差異"的那種感覺, 不爽..


[現在]
var list = edm.XXX.Where(r => SqlFunctions.DateDiff("day", DateTime.Today, r.StartDate) == beforeDays);

發現極少用的 System.Data.Objects.SqlClient namespace, 啊SQL內建函式本身就有咩~ :)

沒有留言: