2014-10-01 101 views
0

我有一個Linq查詢,我想返回RegistrationIDGUID)和一封電子郵件。當查詢到達foreach時,它跳出該值。Linq查詢跳出foreach

你能告訴我應該如何寫這個查詢。

using(var fbdc = new FBDataContext()) 
{ 
    var query = (from q in fbdc.Registrations 
       where q.BookingDateTime == DateTime.Now.AddDays(-1) 
       select new 
       { 
        q.RegistrationID, 
        q.Email 
       }); 

    foreach(var value in query) 
    { 
     registrationId = value.RegistrationID; 
     email = value.Email; 
    } 
} 

另外,我不確定查詢是否有效。有沒有辦法測試這個? BookingDateTimeDateTime所以認爲這將工作,因爲我只想從昨天的文件。我可以使用更準確的表達式來查詢日期(2014年9月30日)嗎?

+2

如果你擔心的時候,只需要使用'<',並與今天相比(該時間是'00:00:00')。 'q.BookingDateTime 2014-10-01 10:52:12

+1

您的查詢沒有問題,只是您可以使用「q.BookingDateTime .Date == DateTime.Now.Date.AddDays(-1)」 – bit 2014-10-01 10:54:53

+0

L2S不支持'AddDays' – 2014-10-01 10:56:46

回答

-1

您可以通過如下使用它:

var query = (from q in fbdc.Registrations 
      where q.BookingDateTime == DateTime.Now.AddDays(-1) 
      select new 
      { 
       q.RegistrationID, 
       q.Email 
      }).AsEnumerable(); 
+0

請告訴爲什麼它被downvoted? – Amit 2014-10-01 12:14:57

+0

在枚舉結果之前,請告訴你如何期待調用'AsEnumerable'。 – Rawling 2014-10-01 12:42:38