Asp.net mvc 无法隐式转换类型';System.Linq.IQueryable';至';System.Linq.IOrderedEnumerable

Asp.net mvc 无法隐式转换类型';System.Linq.IQueryable';至';System.Linq.IOrderedEnumerable,asp.net-mvc,linq,Asp.net Mvc,Linq,我正在与linq争夺datetime 如果记录少于当前日期,我将尝试获取信息 代码如下: public ActionResult _Events() { DateTime dt = DateTime.Now.Date; var DocsFirst =(from t in db.tble_presentation where dt >= EntityFunctions.TruncateTim

我正在与linq争夺datetime

如果记录少于当前日期,我将尝试获取信息

代码如下:

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

看起来
文档列表1
属于
iorderenumerable
(正如@Emre在评论中指出的那样)。要编译代码,您必须将
DocsList\u list1
的声明更改为兼容类型(可能是
IEnumerable
),或者将linq查询的结果更改为
IORDerenumerable
。后一种方法(有点难看):

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()之前,它仍然只读取两个请求的元素

异常告诉DocsFirst类型为“System.Linq.IQueryable”,DocsList\u列表1类型为“System.Linq.iorderenumerable”。您能说明如何定义并将值赋给DocsList_list1吗?这一行可能有用