Strongly typed dataset LINQ-具有强类型数据集的SelectMany

Strongly typed dataset LINQ-具有强类型数据集的SelectMany,strongly-typed-dataset,linq,Strongly Typed Dataset,Linq,我有下面的查询,它返回的正是我需要的 var dataRows = (from headerLocationRow in headerLocationDataTable select WellsDao.Instance.GetAllWellData(headerLocationRow.HEADER_ID).WELL_BORE_CONSOLIDATED) .SelectMany(x => x.Select());

我有下面的查询,它返回的正是我需要的

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。。。无意义遍历数据集,并根据headerLocationDataTable中的标题ID字段返回强类型为井眼\u CONSOLIDATED的数据表集合


这并不是什么大问题,因为查询可以工作,但我真的在尝试处理LINQ,所以我只想知道如何以内联方式完成整个过程。或者如果你知道一种更优雅的写作方式,请分享。最后,我想得到一个包含所有合并行的数据行的平面列表,不管它们与哪个父级headerLocationRow关联。

这应该满足您的要求:

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

这是一个
SelectMany

的查询语法,它的作用是
WellsDao.Instance.GetAllWellData(headerLocationRow.HEADER\u ID)
?它为一个父记录(在本例中是一个井)创建一个ID与HEADER\u ID匹配的数据集。该父记录有很多子表,当然我会说我想我试过了。但很明显我做错了什么。这太完美了。它还返回强类型数据行。由于我糟糕的问题,我不得不在事后抛出它。非常感谢。