2013-05-12 10 views
0

나는 datetime을 얻기 위해 linq을 사용하는 데 어려움을 겪고 있습니다. 나는 레코드가 현재 날짜 여기'System.Linq.IQueryable'형식을 암시 적으로 'System.Linq.IOrderedEnumerable'로 변환 할 수 없습니다.

보다 작은 경우, 정보를 얻기 위해 노력하고

코드입니다 :

public ActionResult _Events() 
{ 
      DateTime dt = DateTime.Now.Date; 
      var DocsFirst =(from t in db.tble_presentation 
          where dt >= EntityFunctions.TruncateTime(t.presentation_date) 
          select t).OrderByDescending(t => t.presentation_date).Take(2); 

      return PartialView(new Newsmodel 
      { 
       DocsList_list1 = DocsFirst, 
      }); 
} 

하지만 난이 다음과 같은 오류를

수 없습니다 암시 적으로 얻을 수 형식 'System.Linq.IQueryable'을 'System.Linq.IOrderedEnumerable'로 변환하십시오. 명시 적 변환은 가 (당신은? 캐스트 누락) 사전에

덕분에 존재 HESH

+0

exception은 DocsFirst가 'System.Linq.IQueryable'유형이고 DocsList_list1이 'System.Linq.IOrderedEnumerable'임을 알립니다. DocsList_list1에 값을 정의하고 할당하는 방법을 보여줄 수 있습니까? – Emre

답변

0

(@Emre이 코멘트에 지적으로) DocsList_List1 유형 IOrderedEnumerable입니다 것 같습니다. 코드를 컴파일하려면 DocsList_list1의 선언을 호환 가능한 형식 (아마도 IEnumerable)으로 변경하거나 linq 쿼리의 결과를 IOrderedEnumerable으로 변경해야합니다. 후자를 할 수있는 (다소 추한) 방법 : 그것을 할 데이터베이스를시키는 대신 메모리에 순서를 않기 때문에

var DocsFirst = (from t in db.tble_presentation 
       where dt >= EntityFunctions.TruncateTime(t.presentation_date) 
       select t).Take(2).AsEnumerable() 
       .OrderByDescending(t => t.presentation_date); 

이 다소 추한,하지만 여전히 배치되는 두 Take(2)에 요소의 감사를 요청 읽고 AsEnumerable()

관련 문제