【发布时间】:2010-03-05 11:38:45
【问题描述】:
我认为我需要这样做,而是使用 LINQ to DataSets,因为“事务”表在 DB2 中并且没有数据上下文。
Linq query across three levels of tables to generate sum
我在 DataSet 上设置了两个 DataRelation:
1. 将类别(在我的示例中为 ds.tables[0])与产品(ds.tables[1])相关联
2. 将产品与交易相关联(ds.tables[2])
var query = from x in ds.tables[0].AsEnumerable()
orderby x.Field<int>("Priority")
select new {
Name = x.Field<string>("Text"),
Amount = //maybe using GetChildRows here???
};
我真的不知道该怎么处理金额。提前致谢!
【问题讨论】:
-
不清楚你要的Transactions表中的记录是在ds中加载还是只在数据库中。即使没有加载它们,您仍然可以在数据库中创建 DataRelation。如果它们被加载,那么它应该很容易做到。如果不是,事情会变得更加棘手。
-
抱歉有任何混淆。一切都加载到 DataSet 中。类别和产品在 SQL Server 数据库中,而事务来自 DB2。我的另一个想法是将 DB2 加载到 SQL Server 中的临时表中并使用 LINQ to SQL,但我认为这会更简单。
标签: c# orm linq-to-dataset