0

我有以下查询可以准确返回我需要的内容,

var dataRows = 
            (from headerLocationRow in headerLocationDataTable
             select WellsDao.Instance.GetAllWellData(headerLocationRow.HEADER_ID).WELL_BORE_CONSOLIDATED)
             .SelectMany(x => x.Select());

但我不喜欢它如何将内联查询与扩展方法混合在一起。这是一个较旧的项目,所以我坚持使用强类型数据集。我尝试使用两个from语句,但它不喜欢那样。 headerLocationDataTable是一个强类型数据表。WellsDao.Instance.Get ...废话遍历DataSet并根据headerLocationDataTable中的HEADER_ID字段返回强类型为WELL_BORE_CONSOLIDATED的DataTables集合

这不是什么大问题,因为查询有效,但我真的想掌握 LINQ,所以我只想知道如何将整个事情作为内联来完成。或者,如果您知道更优雅的写作方式,请分享。最终,我想返回一个包含所有WELL_BORE_CONSOLIDATED行的 DataRows 平面列表,无论它们与哪个父headerLocationRow关联。

4

1 回答 1

1

这应该做你想要的:

var dataRows =  from headerLocationRow in headerLocationDataTable
                from wbcRow in WellsDao.Instance.GetAllWellData(headerLocationRow.HEADER_ID).WELL_BORE_CONSOLIDATED
                select wbcRow;

这是 a 的查询语法SelectMany

于 2012-08-30T22:03:07.467 回答