对象值在linq

时间:2018-07-22 06:15:28

标签: c# linq-to-entities

我正在尝试在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();

1 个答案:

答案 0 :(得分:0)

您当前正在使用select station.Machines,我认为这是一个集合。您正在为每个 station选择它,因此结果是一系列的集合。

不过,您可以轻松地将结果展平。将select station.Machines替换为

from machine in station.Machines
select machine

或者保留您当前的查询表达式,然后将之后的操作更改为:

.SelectMany(m => m).ToList();