【发布时间】:2018-02-27 14:55:23
【问题描述】:
为什么第一个 linq 查询有效,而第二个无效?
var locations =
from routeLocation in db.Table<RouteLocation>()
join location in db.Table<Location>() on routeLocation.LocationId equals location.Id
where functionalLocation.RouteId == routeId
select new Location() { Id = location.Id, ParentId = location.ParentId,
Name = location.Name
};
var locations =
from routeLocation in db.Table<RouteLocation>()
join location in db.Table<Location>() on routeLocation.LocationId equals location.Id
where functionalLocation.RouteId == routeId
select new { Location = location };
第二个查询的编译器错误是:
不能隐式转换类型 'System.Collections.Generic.List>' 到'System.Collections.Generic.List
我尝试将 var 声明为位置列表,但仍然得到相同的错误。我是否可以使用第二个示例中的语法,而不必像第一个示例中那样指定每个属性?
【问题讨论】:
-
错误信息一目了然!
-
那么如何解决呢?
-
select new { ...}而不是select new Location { ...}