2012-06-29 5 views
1

다음 코드가 있습니다. 하지만 예외가 발생합니다.EF의 상수로 인해 예외가 발생합니다.

   using (var context = new blogEntities()) 
       { 
        var listOfComments = context.Comments 
         .OrderByDescending(c => c.CreateDate) 
         .Where(c => c.CreateDate > fromDate) 
         .Select(c => new NewsFeedData() 
         { 
          ArticleID = c.ArticleID, 
          CommentID = c.CommentID, 
          Text = c.CommentText, 
          Author = c.Author, 
          CreateDate = c.CreateDate, 
          Type = 'C' 
         }).ToList(); 
       } 

내가 열거를 시도했지만 몇 가지 문제가있다보다. 내가 원하는 것을 성취하는 가장 좋은 방법은 무엇입니까? 내가 입력하는 몇 가지 상수를 할당 할

+0

예외는 무엇입니까? "유형"이 문자입니까? –

+0

char. 유형은 char 유형입니다. – levi

+0

예외는 무엇입니까? – ZafarYousafi

답변

4
하나의 간단한 방법은 다음 익명 형으로 데이터베이스에서 모든 값을 가져 최종 투사하기 전에 객체에 LINQ로 전환 AsEnumerable을 사용하는 것입니다

:

using (var context = new blogEntities()) 
{ 
    var listOfComments = context.Comments 
     .OrderByDescending(c => c.CreateDate) 
     .Where(c => c.CreateDate > fromDate) 
     .Select(c => new { c.ArticleID, c.CommentID, c.CommentText, 
          c.Author, c.CreateDate }) 
     .AsEnumerable() // Switch into LINQ to Objects 
     .Select(c => new NewsFeedData 
     { 
      ArticleID = c.ArticleID, 
      CommentID = c.CommentID, 
      Text = c.CommentText, 
      Author = c.Author, 
      CreateDate = c.CreateDate, 
      Type = 'C' 
     }).ToList(); 
} 
+0

이 너무 큽니다 – levi

+1

@levanlevi :이 솔루션은 완벽합니다! 아주 멋진 트릭 ... 코드가 적다는 점은 의심 스럽다. – Slauma

+2

@levanlevi : "너무 큼"이란 무엇입니까? 3 줄의 코드 만 추가했습니다 ... 문제가 해결되면 세 줄이 너무 많이 묻지 않습니까? –

관련 문제