【问题标题】:Managing Data Prefetching and Dependencies with .NET Typed Datasets使用 .NET 类型化数据集管理数据预取和依赖关系
【发布时间】:2010-04-29 22:27:59
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: .net dataset


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      对于 UsedClasses 中的每个类

      DataSet.AddRequirement(Class.Requirements)

      DataSet.Prefetch

      对于 UsedClasses 中的每个类

      类.进程(数据集)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-24
        • 2015-06-06
        • 2018-06-14
        • 1970-01-01
        • 2012-07-19
        • 1970-01-01
        相关资源
        最近更新 更多