【发布时间】:2012-08-30 21:48:12
【问题描述】:
我有以下查询,它返回的正是我所需要的,
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并根据HEADER_ID字段返回强类型为WELL_BORE_CONSOLIDATED的DataTables集合在 headerLocationDataTable 中。
这没什么大不了的,因为查询有效,但我真的想掌握 LINQ,所以我只想知道如何将整个事情作为内联来完成。或者,如果您知道更优雅的写作方式,请分享。最终,我想返回一个包含所有 WELL_BORE_CONSOLIDATED 行的 DataRows 平面列表,无论它们与哪个父 headerLocationRow 关联。
【问题讨论】:
-
WellsDao.Instance.GetAllWellData(headerLocationRow.HEADER_ID)是什么意思? -
它为父记录(在本例中为一口井)创建一个数据集,其 id 与 HEADER_ID 匹配。该父级有很多子表,包括 WELL_BORE_CONSOLIDATED。
标签: strongly-typed-dataset linq