社区
LINQ
帖子详情
c#里使用linq的问题,报错说不支持查询运算符last
linger_liang
2009-08-25 12:01:28
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
select a;
string mmnanme = query.Last().MenuName;
就是从数据库表里读数据,然后把最后一条的一个字段内容给一个变量,就这么简单,但是运行报错说
System.NotSupportedException: 不支持查询运算符“Last”
...全文
761
14
打赏
收藏
c#里使用linq的问题,报错说不支持查询运算符last
var query = from a in db.SysMenuTbl where a.ParentMenuID == 0 select a; string mmnanme = query.Last().MenuName; 就是从数据库表里读数据,然后把最后一条的一个字段内容给一个变量,就这么简单,但是运行报错说 System.NotSupportedException: 不支持查询运算符“Last”
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huyou1983218
2009-08-28
打赏
举报
回复
[Quote=引用 5 楼 linger_liang 的回复:]
引用 4 楼 jzywh 的回复:
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
orderby a.**** //根据你自己的排序规则
select a;
string mmnanme = query.FirstOrDefault().MenuName;
不能用firstordefault,我是要取query这个结果集的最后一个来判断这个query已经运行到结尾了。
[/Quote]
orderby a.**** //根据你自己的排序规则
这句没看到吗?desc 倒序排列不就是第一条就是最后一条了?
以专业开发人员为伍
2009-08-27
打赏
举报
回复
非常反对使用
query.ToList().Last().MenuName;
或者
query.AsEnumerable().Last().MenuName;
这种做法。
知道Linq to SQL(其它Linq Provider也类似)的特点么?它自动编译为SQL语句然后拿出结果,而不是把数据逐一搜索到内存里再来筛选。
我是很不愿意听到有些人骂vs这种IDE让很多程序员变成笨蛋的。但是,有时候工具放在一些不求甚解的人手中,确实会害了这些人。这主要是人的原因,而不能怪工具。对于Linq也是这样,一定要懂得一些深度的知识,才能正确使用Linq。
yezie
2009-08-27
打赏
举报
回复
直接排序,取first。。。。。。。。
jzywh
2009-08-25
打赏
举报
回复
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
orderby a.**** //根据你自己的排序规则
select a;
string mmnanme = query.FirstOrDefault().MenuName;
linger_liang
2009-08-25
打赏
举报
回复
没有高人来解答一下么?
caotoulei
2009-08-25
打赏
举报
回复
应该可以的哈,实在不行,就试下tolist()之后,得到count()值后,取最后一个。
jzywh
2009-08-25
打赏
举报
回复
重新order一下, 用 query.FirstOrDefault()
chen_ya_ping
2009-08-25
打赏
举报
回复
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
select a;
string mmnanme = query.AsEnumerable().Last().MenuName;
阿非
2009-08-25
打赏
举报
回复
Last() 是 LINQ to Object 部分的, Object 一般指的是数组 或 实现了IEnumerable 接口的集合
-----------------------------------------------------------------------------------------
Last, LastOrDefault
这些方法的转换对于有序集而言是可行的,但目前 LINQ to SQL 未对它们进行转换。
http://msdn.microsoft.com/zh-cn/express/bb399342.aspx
jzywh
2009-08-25
打赏
举报
回复
[Quote=引用楼主 linger_liang 的回复:]
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
select a;
string mmnanme = query.Last().MenuName;
就是从数据库表里读数据,然后把最后一条的一个字段内容给一个变量,就这么简单,但是运行报错说
System.NotSupportedException: 不支持查询运算符“Last”
[/Quote]
要么你用string mmnanme = query.ToList().Last().MenuName;
jzywh
2009-08-25
打赏
举报
回复
[Quote=引用 6 楼 linger_liang 的回复:]
jzywh
(江大鱼) :
为什么用firstordefault就可以,用last就不行呢?
[/Quote]
sql 里面有 select top 1...
你见过有 select last 1... 么?
linger_liang
2009-08-25
打赏
举报
回复
自己再顶顶
linger_liang
2009-08-25
打赏
举报
回复
jzywh
(江大鱼) :
为什么用firstordefault就可以,用last就不行呢?
linger_liang
2009-08-25
打赏
举报
回复
[Quote=引用 4 楼 jzywh 的回复:]
var query = from a in db.SysMenuTbl
where a.ParentMenuID == 0
orderby a.**** //根据你自己的排序规则
select a;
string mmnanme = query.FirstOrDefault().MenuName;
[/Quote]
不能用firstordefault,我是要取query这个结果集的最后一个来判断这个query已经运行到结尾了。
C#
LINQ
查询
技术
本课程以实例讲解
LINQ
(Language Intergrated Query)语言集成
查询
技术的
使用
。
C#
程序开发范例宝典(第2版).part08
实例067 利用选择控件实现复杂
查询
85 2.6 ListView控件应用 87 实例068 ListView控件间的数据移动 87 实例069 将数据库数据添加到ListView控件 90 实例070 在ListView控件中实现修改功能 91 实例071 在...
C#
程序开发范例宝典(第2版).part02
实例067 利用选择控件实现复杂
查询
85 2.6 ListView控件应用 87 实例068 ListView控件间的数据移动 87 实例069 将数据库数据添加到ListView控件 90 实例070 在ListView控件中实现修改功能 91 实例071 在...
LINQ
8,497
社区成员
4,736
社区内容
发帖
与我相关
我的任务
LINQ
.NET技术 LINQ
复制链接
扫一扫
分享
社区描述
.NET技术 LINQ
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章