Serialization 通过拉动行、遵循关系提取数据集的子集

Serialization 通过拉动行、遵循关系提取数据集的子集,serialization,ado.net,Serialization,Ado.net,是否有相对简单的方法来提取数据集的关系一致子集?我想要的子集是:我感兴趣的行,这些行所需的所有子行和父行,而不是其他行 我有大约12个表,每个表与其他表有2到4个关系 我想我可以在一两天内编写代码来遍历数据表和关系,但我更愿意重用现有代码,并在我的产品上花费一两天的时间 背景: 我有一个强类型的数据集,它来自我公司销售的组件数据库 我正在考虑另一个强类型数据集来存储建议的解决方案。物料清单(BOM)上的每个项目将有一行。每行将描述组件的配置 我不想将解决方案表放入组件数据集中 当我通过Write

是否有相对简单的方法来提取数据集的关系一致子集?我想要的子集是:我感兴趣的行,这些行所需的所有子行和父行,而不是其他行

我有大约12个表,每个表与其他表有2到4个关系

我想我可以在一两天内编写代码来遍历数据表和关系,但我更愿意重用现有代码,并在我的产品上花费一两天的时间

背景:

我有一个强类型的
数据集
,它来自我公司销售的组件数据库

我正在考虑另一个强类型数据集来存储建议的解决方案。物料清单(BOM)上的每个项目将有一行。每行将描述组件的配置

我不想将解决方案表放入组件数据集中

当我通过
WriteXml
序列化解决方案数据集时,我希望保留关于组件的足够信息。如果我正在存储组件表中的主键,那应该不会太难


我突然想到,如果我还从主组件数据集中持久化了适当的行,那么持久化的解决方案可以在数据过期后继续存在。不过,我不想保留整个组件数据集,因此我的问题是提取一个有用的子集

我能想到的最简单的方法是对每一行调用DataRow.SetModified(),遍历需要获取的任何子行,然后对数据集调用DataSet.GetChanges()方法,该方法将只返回已标记的行

在调用GetChanges之后,还需要在原始数据集中调用RejectChanges(),以便再次使用它