2010-05-03 6 views
3

내가LINQ 2 엔티티, 하우투는

ENTRY라는 표 (& EntitySet)에서의 최신 메시지를 게시 얻을 것으로 예상되는이 방법을 가지고 /// 방법은 "일 얻는 LINQ 쿼리 내에서 DateTime.HasValue을 확인 "매개 변수로 새 TimeSpan (days, 0,0,0)에 사용됨 !!

using (Entities db = new Entities()) 
    { 
     var entries = from ent in db.ENTRY 
         where ent.DATECREATE.Value > DateTime.Today.Subtract(new TimeSpan(days, 0, 0, 0)) 
         select new ForumEntryGridView() 
         { 
          id = ent.id, 
          baslik = ent.header, 
          tarih = ent.entrydate.Value, 
          membername = ent.Member.ToString() 
         }; 
     return entries.ToList<ForumEntryGridView>(); 
    } 

여기서 DATECREATED는 데이터베이스에서 Nullable입니다. 나는이 쿼리에서 if if place를 찾을 수 없다.

답변

0

사전에 들으 ... 당신은 내가하지만 두 번째 쿼리는 경우 확실하지 않다

entries = from ent in db.ENTRY 
      where ent.DATECREATED == null || 
       ent.DATECREATE.Value > DateTime.Today..... 

그들을 단순히

entries = from ent in db.ENTRY 
      where ent.DATECREATED != null 
      where ent.DATECREATE.Value > DateTime.Today.... 

를 사용하여 널 (null)과 동일한 DATECREATED가있는 항목을 제외하고 포함 할 수 있습니다 첫 번째 조건이 true가되면 where 절 검사를 실제로 중지합니다.

+0

는 "나는 확실하지 오전"대답은 그 방법이기 때문에 그것이 않는다는 것입니다 '||'는 작동합니다. – Domenic

4

DATECREATEDnull 인 경우 어떻게 하시겠습니까?

당신은 단지 이러한 레코드를 무시하려면

는 추가 조건 (또는 where 절)를 사용 :

마지막에 대답에서
var entries = from ent in db.ENTRY 
       where ent.DATECREATED.HasValue && ent.DATECREATED.Value > ... 
+0

예, 맞습니다. :) thanks –