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();

错误:无法将类型隐式转换Diary_EntrySystem.Collections.Generic.List<Diary_Entry>

有人可以告诉我如何解决这个问题吗?

4

2 回答 2

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();
于 2013-02-23T19:17:14.317 回答
0

您的变量 DiaryEntry 是 List 类型,但您尝试将其设置为等于 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 类型的单个值,你应该使用

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

在此查询中,您不应使用ToList().

于 2013-02-23T19:19:05.827 回答