2

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

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

在这种情况下使用什么好的方法或模式?我在做一些根本错误的事情吗?尽管我使用的是类型化数据集,但这似乎是使用预取数据的常见情况。

谢谢!

4

2 回答 2

1

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

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

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

于 2008-11-01T21:16:33.643 回答
1

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

对于 UsedClasses 中的每个类

DataSet.AddRequirement(Class.Requirements)

数据集预取

对于 UsedClasses 中的每个类

类.进程(数据集)

于 2010-04-29T14:27:59.173 回答