2013-02-23 1 views
0
List<Diary_Entry> DiaryEntry = new List<Diary_Entry>(); 

DiaryEntry = (from DE in db.Diary_Entries 
    where DE.Site_Id == 1 
    && DE.Date == tempDate 
    select DE).ToList().FirstOrDefault(); 

오류를 collections.generic.list로 변환 어차피 : 수 없습니다 implicity 변환 유형 Diary_Entry목록 <Diary_Entry> DiaryEntry는

System.Collections.Generic.List<Diary_Entry>에 몇 가지 중 하나가 내가이 문제를 해결하는 방법을 알려 주시기 바랍니다 수 있습니까?

답변

1

FirstOrDefault() 전화를 제거해야합니다. 그러면 단일 엔터티가 반환되고 DiaryEntry 인스턴스가 목록입니다. 그것은 두이 (DiaryEntry 유형 List<Diary_Entry>이 될 것입니다)해야한다 :

var DiaryEntry = (from DE in db.Diary_Entries 
        where DE.Site_Id == 1 
        && DE.Date == tempDate 
        select DE).ToList(); 

아니면이 (DiaryEntry 유형 Diary_Entry이 될 것입니다)해야한다 :

var DiaryEntry = (from DE in db.Diary_Entries 
        where DE.Site_Id == 1 
        && DE.Date == tempDate 
        select DE).ToList().FirstOrDefault(); 
+0

도움에 큰 감사를드립니다. – John

0

귀하의 변수 DiaryEntry 유형의 목록입니다 만 당신은 Diary_Entry 타입의 변수와 동일하게 설정하려고 시도합니다.

List<Diary_Entry> DiaryEntry = new List<Diary_Entry>(); 
DiaryEntry = (from DE in db.Diary_Entries 
         where DE.Site_Id == 1 
         && DE.Date == tempDate 
         select DE).ToList(); 

이 쿼리는 Diary_Entry 유형의 값 목록을 반환합니다. 이 유형의 단일 값을 얻고 싶다면 Diary_Entry 당신은 당신이 ToList()을 사용하지 않아야이 쿼리에

var DiaryEntry = (from DE in db.Diary_Entries 
          where DE.Site_Id == 1 
          && DE.Date == tempDate 
          select DE).FirstOrDefault(); 

를 사용해야합니다.