c#里使用linq的问题,报错说不支持查询运算符last.
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
select a;
string mmnanme = query.Last().MenuName;
就是从数据库表里读数据,然后把最后一条的一个字段内容给一个变量,就这么简单,但是运行报错说
System.NotSupportedException: 不支持查询运算符“Last”
------解决方案--------------------
重新order一下, 用 query.FirstOrDefault()
------解决方案--------------------
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
orderby a.**** //根据你自己的排序规则
select a;
string mmnanme = query.FirstOrDefault().MenuName;
------解决方案--------------------
非常反对使用
query.ToList().Last().MenuName;
或者
query.AsEnumerable().Last().MenuName;
这种做法。
知道Linq to SQL(其它Linq Provider也类似)的特点么?它自动编译为SQL语句然后拿出结果,而不是把数据逐一搜索到内存里再来筛选。
我是很不愿意听到有些人骂vs这种IDE让很多程序员变成笨蛋的。但是,有时候工具放在一些不求甚解的人手中,确实会害了这些人。这主要是人的原因,而不能怪工具。对于Linq也是这样,一定要懂得一些深度的知识,才能正确使用Linq。