1

これを正確に行う必要があると思いますが、代わりにLINQ to DataSetsを使用します。これは、「トランザクション」テーブルがDB2にあり、データコンテキストがないためです。

合計を生成する 3 つのレベルのテーブルにわたる Linq クエリ

DataSet に 2 つの DataRelations をセットアップします
。 1. カテゴリ (私の例では ds.tables[0]) を製品 (ds.tables[1])
に関連付けます。

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???
    };

金額についてはどうすればいいのかよくわかりません。前もって感謝します!

4

1 に答える 1

1

Transactionsテーブルに必要な行がdsにロードされている場合は、次のように実行できると思います。

DataRelation relationToProducts;
DataRelation relationToTransactions;    
var query = from x in ds.tables[0].AsEnumerable()
orderby x.Field<int>("Priority")
select new {
    Name = x.Field<string>("Text"),
    Amount = x.GetChildRows(relationToProducts)
            .Sum(product => product.GetChildRows(relationToTransactions)
                    .Sum(tx => tx.Field<decimal>("Amount")))
};
于 2010-03-05T03:38:45.713 に答える