【发布时间】:2010-11-21 17:50:12
【问题描述】:
我们有两个表:
Parent
ID: Integer //主键
名称:字符串
儿童
FK: Integer //对 Parent.ID 的引用
更多信息:字符串
Parent 有 100,000 行,Child 有 10,000 行(parent 中的很多行在 child 中没有使用)
目前我们这样做:
MyDS.Relations.Add("PC", MyDS.Tables["Parent"].Columns["ID"],
MyDS.Tables["Child"].Columns["FK"]);
foreach (DataRow drChild in MyDS.Tables["Child"].AsEnumerable())
DataRow drParent = drChild.GetParentRows(MyDS.Relations["PC"]).FirstOrDefault();
我们正在考虑改为仅使用 Linq 手动搜索:
foreach (DataRow drChild in MyDS.Tables["Child"].AsEnumerable())
DataRow drParent = MyDS.Tables["Parent"].AsEnumerable().FirstOrDefault(
drParent => drParent["ID"] == drChild["FK"]);
表 Child 仅迭代一次,然后处理数据集。任何人都有使用一种方法或另一种方法的经验 - 如果只使用一次,在方法 1 中创建关系会浪费时间吗?
【问题讨论】: