使用.NET类型的数据集管理数据预取和依赖关系

使用.NET类型的数据集管理数据预取和依赖关系,.net,dataset,.net,Dataset,我在项目中使用.NET类型的数据集,我经常遇到这样的情况:我将多个表中的数据预取到一个数据集中,然后将该数据集传递给多个方法进行处理。让每个方法准确地决定它需要哪些数据,然后自己加载数据,这似乎更干净。但是,有几种方法使用相同的数据,我希望在开始时只加载一次数据,从而获得性能优势 我的问题是,我不知道有什么好的方法或模式用于管理依赖项(我想确保我加载了将使用数据集的每个类/方法所需的所有数据)。目前,我只是查看了将使用数据集的各种类的代码,以确保正确加载所有内容 在这种情况下,什么是好的方法或模

我在项目中使用.NET类型的数据集,我经常遇到这样的情况:我将多个表中的数据预取到一个数据集中,然后将该数据集传递给多个方法进行处理。让每个方法准确地决定它需要哪些数据,然后自己加载数据,这似乎更干净。但是,有几种方法使用相同的数据,我希望在开始时只加载一次数据,从而获得性能优势

我的问题是,我不知道有什么好的方法或模式用于管理依赖项(我想确保我加载了将使用数据集的每个类/方法所需的所有数据)。目前,我只是查看了将使用数据集的各种类的代码,以确保正确加载所有内容

在这种情况下,什么是好的方法或模式?我是不是做错了什么?虽然我使用的是类型化数据集,但这似乎是使用预取数据的常见情况

谢谢

我认为您正在寻找的“模式”可能只是延迟加载或延迟加载。类型化数据集可以具有所有方法或类都需要的结构,但只有在某些方法/类尝试访问数据的特定部分时,才会填充数据

一个很好的例子是姓名和地址。您可能有一个姓名列表,每个姓名可能有多个地址。不需要访问地址的方法/类不会导致加载地址。但是,只要任何方法或类尝试访问给定名称的地址,就会加载该名称的地址。任何后续使用该名称的地址都会发现已加载的数据


在类型化数据集中实现这一点将是一个相当手工的过程。(每次我使用类型化数据集时,我都越来越讨厌它们。)您可能想看看LINQ to SQL,因为它内置了此功能。还有其他类似的框架也内置了此功能。

您可以使用类似于复合模式的功能,让每个类添加一些数据需求,然后预取数据,然后处理数据

对于UsedClass中的每个类

DataSet.AddRequirement(类要求)

数据集预取

对于UsedClass中的每个类

类。进程(数据集)