将LINQ查询结果转换为int

Kab*_*abi 2 c# linq type-conversion

我写了一个应该返回int值的LINQ查询.但是我无法将此值转换为int并发生异常: 无法将"QuickRoutes.DAL.RouteLinq"类型的对象强制转换为"System.IConvertible"类型.
这是我的LINQ:

var res = (from p in aspdb.RouteLinqs
                       orderby p.RouteId descending
                       select p).Take(1);
Run Code Online (Sandbox Code Playgroud)

这里发生异常:

 route.Id =Convert.ToInt32(res.FirstOrDefault());
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

Hab*_*bib 10

那是因为你正在使用res.FirstOrDefault()返回一个RouteLinqs类型对象,select p你可以选择一个字段使用select p.FieldName,其中FieldName是转换所需的属性,这可能是RouteId

您可能想要查询linq查询中的特定字段.

var res = (from p in aspdb.RouteLinqs
                       orderby p.RouteId descending
                       select p.RouteId).Take(1); //p.RouteID or any field you want. 
Run Code Online (Sandbox Code Playgroud)

或者使用当前查询,您可以执行以下操作:

 route.Id =Convert.ToInt32(res.FirstOrDefault().RouteID);
Run Code Online (Sandbox Code Playgroud)