答案:你需要选择是运用一个data set还是一个data reader。在你读取任何数据前,data set就已经存在了,所以你可以用schema来预载它,这就是所谓的强类型数据集。每个强类型数据集是一个自动生成的类,这个类是从标准的ADO.NET数据集派生的。类的生成运用了一个XSD schema文件,它可以描述多个ADO.NET数据表。
用拖拉技术创建你的XSD, 然后通过添加关系、改进命名和检查类型(尤其当你用的是一个Oracle数据源时)来增强它的功能。在你满意后,你可以通过从context menu选择Generate Dataset来创建类。在VSM一月刊中,Andrew J. Brust讲述了该过程以及基本的数据绑定(见资源)。
当数据结构发生改变时,你需要重建并重写强类型的数据集,所以你不能改变该文件。然而,你可以很容易地继承该数据集以创建一个ESTD(见列表2)。ESTD可以将行为和商业规则与你的数据结合起来,并且进一步地将UI同详细数据隔离开。
当你计划继承一个自动生成的强类型的数据集时,你可能会想是否对它进行扩展,是否继承强类型数据集里的DataTables和DataRows。不幸的是,强类型的数据集(包含你不想改变的代码)直接将这些对象实例化了,所以它不会用你派生的类。为了避免改变强类型的数据集,坚持继承数据集本身。
IExtDataSet接口让你识别一个ESTD,并运用诸如Fill和Update的方法。每个方法实例化一个DataAccessor并代表一次调用。在你的程序中,可以有许多ESTD,但拥有一个DataAccessor可以让你有一个稳定的接口使你的DataAccessor进一步扩展
上一个:构建可扩展的体系架构 (续)-zt(2)
下一个:Microsoft .NET 中的基类继承(2)