Asp.net mvc 无法隐式转换类型';System.Linq.IQueryable';至';System.Linq.IOrderedEnumerable
我正在与linq争夺datetime 如果记录少于当前日期,我将尝试获取信息 代码如下: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
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吗?这一行可能有用