【发布时间】:2012-07-01 06:13:33
【问题描述】:
如何逐行读取 LINQ 查询的结果。(是否可能)? 我想实现这个但不可能:
aspnetdbDataContext aspdb = new aspnetdbDataContext();
var res = from r in aspdb.RouteLinqs
where r.UserId == userId
select r;
foreach (DataRow row in res)
{
// ...
抛出异常:
无法将类型“QuickRoutes.DAL.RouteLinq”转换为“System.Data.DataRow”
编辑:
在foreach 块中我有:
foreach (var row in res)
{
var routeId = (int)row["RouteId"];
var route = new Route(routeId)
{
Name = (string)row["SourceName"],
Time = row["CreationTime"] is DBNull ? new DateTime() :
Convert.ToDateTime(row["CreationTime"])
};
route.TrackPoints = GetTrackPointsForRoute(routeId);
result.Add(route);
}
如果我在某些行中使用 var,则会出现此错误:
无法将带有 [] 的索引应用于“QuickRoutes.DAL.RouteLinq”类型的表达式
【问题讨论】:
-
这将逐行读取。 foreach 循环内的代码对结果进行迭代
-
只需使用
var关键字而不是DataRow。我认为查询不会产生IEnumerable<DataRow>,或者是吗? -
什么不起作用?有什么错误信息吗?
-
当您遇到异常时 - 最好在问题中发布异常消息。
-
是一个错误:无法将类型“QuickRoutes.DAL.RouteLinq”转换为“System.Data.DataRow”
标签: c# linq linq-to-sql