我've written a LINQ query that should return an int value. but I' m无法将此值转换为int并发生异常: Unable to cast object of type 'QuickRoutes.DAL.RouteLinq' to type 'System.IConvertible'.
这是我的LINQ:
var res = (from p in aspdb.RouteLinqs
orderby p.RouteId descending
select p).Take(1);
这里发生异常:
route.Id =Convert.ToInt32(res.FirstOrDefault());
我怎么解决这个问题?
5 回答
这是因为
res.FirstOrDefault()
返回一个RouteLinqs
类型的对象,因为您使用的是select p
,您可以使用select p.FieldName
选择一个字段,其中FieldName是转换所需的属性,可能是RouteId
您可能想要查询linq查询中的特定字段 .
或者使用当前查询,您可以执行以下操作:
看起来您正在选择最大路由ID,为什么不这样做:
这段代码应该有效:
不确定你是怎么回事,但定义了
RouteLinqs
,但也许你正在寻找从类RouteLinqs
中选择一个特定的对象 .在这种情况下,
p
是RouteLinqs
的单个项目,p.SomeProperty应该是您的int值 .先做linq:
比跑:
在1命令中: