我正在尝试在linq中查询,数据按预期来了,但是随着数组中的每个对象又作为对象数组来了,所以我每次必须选择垂直对象的第0个对象,如何以正确的格式获取值。 附加我的查询...在此先感谢
var results = (
from site
in db.Sites.Where(s => s.CompanyId == UserRecord.Company.CompanyId)
join station
in db.Stations.Include(y => y.Machines).Where(a => stationIds.Count() == 0 || stationIds.Contains(a.Id))
on site.Id equals station.SiteId
where ((noSearchParam || station.Name.ToLower().Contains(search.ToLower())) && (siteIds.Count() == 0 || siteIds.Contains(site.Id)))
select station.Machines
).ToList();
答案 0 :(得分:0)
您当前正在使用select station.Machines
,我认为这是一个集合。您正在为每个 station
选择它,因此结果是一系列的集合。
不过,您可以轻松地将结果展平。将select station.Machines
替换为
from machine in station.Machines
select machine
或者保留您当前的查询表达式,然后将之后的操作更改为:
.SelectMany(m => m).ToList();