对象值给出 linq 中的对象数组
Object values giving array of objects in linq
我正在尝试在 linq 中查询,数据按预期出现,但随着我数组中的每个对象再次作为对象数组出现,所以我必须 select 第 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();
您目前正在使用 select station.Machines
,我认为这是一个集合。您正在为 eachstation
选择它,因此结果是一系列集合。
不过,您可以轻松地拉平结果。将 select station.Machines
替换为
from machine in station.Machines
select machine
或者保留您当前的查询表达式,然后将您之后的操作更改为:
.SelectMany(m => m).ToList();
我正在尝试在 linq 中查询,数据按预期出现,但随着我数组中的每个对象再次作为对象数组出现,所以我必须 select 第 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();
您目前正在使用 select station.Machines
,我认为这是一个集合。您正在为 eachstation
选择它,因此结果是一系列集合。
不过,您可以轻松地拉平结果。将 select station.Machines
替换为
from machine in station.Machines
select machine
或者保留您当前的查询表达式,然后将您之后的操作更改为:
.SelectMany(m => m).ToList();