LINQ - 使用强类型数据集选择多个

时间:2012-08-30 21:48:13

标签: strongly-typed-dataset linq

我有以下查询,它完全返回我需要的内容,

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 相关联。

1 个答案:

答案 0 :(得分:1)

这应该做你想要的:

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

这是SelectMany的查询语法。