【发布时间】:2018-02-22 07:38:49
【问题描述】:
我有一个DataSet,其中包含 4 个DataTables,比如dt1、dt2、dt3、dt4。我也有 3 个这样的DataRelations:
|Parent|Child|
| d1 | d2 |
| d2 | d3 |
| d2 | d4 |
我的MasterClass 将此DataSet 传递给几个类,每个类需要使用DataSet 执行不同的操作。但是,在通过DataSet 之前,MasterClass 需要对dt1 执行过滤,因为每个类都需要使用过滤后的dt1 版本。请注意,我无法更新dt1,因为我需要对同一个DataTable 执行不同的过滤器。在下图中,我尝试将结构形象化:
我的问题是:将过滤后的dt1 传递给Class A..B 的最佳方法是什么?
我想到的第一个解决方案是在我的DataSet 中创建dt1 的副本,并将过滤后的版本存储在其中,比如FilteredDt1,但是,我不想有冗余数据/DataRows 在内存中。
根据我在 Microsoft 的文档中阅读的内容,我认为在 DataView 的帮助下我可以做得更好,方法是将 DataView 作为第二个参数传递给类,但我从软件架构的角度来看,我也不知道该怎么做。
遇到的问题:
- 如果我使用
DataView,是否仍然可以使用DataRelations? - 是否可以在
DataView和DataTable上运行联接?
我对@987654352@ 比较陌生,如果您纠正我,如果我的问题中有任何错误/不正确的假设,我会非常感激。
【问题讨论】:
标签: .net datatable architecture ado.net dataview