我会尽量简化我的问题。
随意评论和纠正我的英语。希望你能理解我。
我的主要问题是: 是否有任何简单且“自动化”的方法,仅使用与其他表中的数据相关的行来填充数据集中的表?
假设我们有具有以下架构的数据库:
现在,我正在尝试用“订单”表做同样的事情,并创建自定义方法“FillByDate”。它有效,但有一个小问题:
DataSet1 myDataSetInstance = new DataSet1();
DataSet1TableAdapters.OrdersTableAdapter OrdersTA = new DataSet1TableAdapters.OrdersTableAdapter();
OrdersTA.FillByDate(myDataSetInstance.Orders, new DateTime(2013, 1,1), DateTime.Now);
foreach (var row in myDataSetInstance.Orders)
{
MessageBox.Show(row.Comments); // OK
MessageBox.Show(row.CustomersRow.Name); //NULL
}
从客户表中获取相关行是不可能的 - 首先我必须手动填写该表。我可以看到两种方法来做到这一点
- 获取此表的全部内容 - 但这将是大量不需要的数据
- 在它的 TableAdapter 中创建自定义查询 - 类似于 FillByOrdersByDate(@Date1, @Date2) - 当我只有 2 个表和 1 个关系时,这很容易,但是对于更多表,此方法将需要为每个 TableAdapter 进行数十个自定义查询。
我真的相信,必须有“更好”的方法来做到这一点。