2014-04-01 62 views
1

Linq to Entity的新手,嘗試獲取過去六個月內收到的所有記錄。我花了幾個小時試圖讓這個工作。任何援助將不勝感激。當我調用'限制'變量時,它將被分配日期01/01/0001。任何援助將不勝感激。如果我註釋掉'where'子句,它就會起作用;不過,我只需要在最近六個月內對它進行排序。獲取過去六個月內收到的所有記錄

在此先感謝。

JobSeekersEntities context = new JobSeekersEntities(); 

var limit = DateTime.Today.AddMonths(-6); 

     var query = from c in context.Applications 
        where c.received > limit 
        orderby c.received descending 
        select new { c.firstName, c.middleName, c.lastName, c.street, c.city, c.state, c.zip, c.position }; 

     var results = query.Take(25).ToList(); 

     applicationDataGrid.DataContext = results; 
+1

當你說你調用極限變量你是什麼意思?我在一些測試代碼中複製了限制變量,似乎計算得很好。 –

+0

當我使用調試器並停止它。它將日期顯示爲值爲{1/1/0001 12:00:00 AM}。 –

+0

執行'var limit = DateTime.Today.AddMonths(-6); Console.WriteLine(限制);'它爲我顯示'01.10.2013 00:00:00'。嘗試打印出你的極限變量。也許你必須清理舊的二進制文件重新編譯和調試? – BlueM

回答

2

如果停止調試器的行「var limit =」,您將獲得該值。您需要按F10鍵跳過該代碼,然後查看值,這將是正確的。必須讓該線路運行,以便分配極限。 Var在這種情況下是DateTime,它是一個值類型,所以它有一個默認值。我可以看到這是誤導。