我有以下查询,它完全返回我需要的内容,
var dataRows =
(from headerLocationRow in headerLocationDataTable
select WellsDao.Instance.GetAllWellData(headerLocationRow.HEADER_ID).WELL_BORE_CONSOLIDATED)
.SelectMany(x => x.Select());
但我不喜欢它如何将内联查询与扩展方法混合在一起。这是一个较旧的项目,所以我坚持使用强类型的DataSet。我尝试使用两个来自语句,但它不喜欢这样。 headerLocationDataTable 是一种强类型的DataTable。 WellsDao.Instance.Get ...废话遍历DataSet并根据 HEADER_ID 字段返回强类型为 WELL_BORE_CONSOLIDATED 的DataTable集合在 headerLocationDataTable 中。
这不是一个大问题,因为查询有效,但我真的想要处理LINQ,所以我只想知道如何做整个内联。或者如果您知道更优雅的写作方式,请分享。最后,我想找回一个包含所有 WELL_BORE_CONSOLIDATED 行的DataRows列表,无论它们与哪个父 headerLocationRow 相关联。
答案 0 :(得分:1)
这应该做你想要的:
var dataRows = from headerLocationRow in headerLocationDataTable
from wbcRow in WellsDao.Instance.GetAllWellData(headerLocationRow.HEADER_ID).WELL_BORE_CONSOLIDATED
select wbcRow;
这是SelectMany
的查询语法。