首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

System.NotSupportedException: 不支持查询运算符’Last'-c#里使用linq的问题.

2014-01-28 
var query from a in db.SysMenuTblwhere a.ParentMenuID 0select astring mmnanme query.Last().M

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。

        

热点排行