質問

主キー/外部キーの関係で結合された一連のテーブルがあります。トランザクションのテーブルがあり、各トランザクションは1つの製品のみを参照します。各製品は1つのカテゴリにのみ存在できます:


Categories        Products           Transactions
-------------     -------------      -----------------
CategoryId        ProductId          TransactionId
CategoryName      CategoryId         ProductId
                  ProductName       TransactionAmount
  

LinqToSqlを学習しているだけで、ラムダ式を使用して各カテゴリの製品にアクセスしました(x => x.Products)。しかし、私がやろうとしているのは、Transactionsテーブルにアクセスして、具体的にはカテゴリごとにすべてのトランザクションの合計を取得することです。

Linqステートメントで手動結合を作成することで、これを実行できると確信しています。しかし、すべてのテーブルがモデル内でPF / FKとして結合されているため、これを行う必要があるとは思えません。

誰でも始め方の例を提供できますか?

役に立ちましたか?

解決

コンパイルしようとせずに、これはあなたが望むように機能すると思います。 LINQ to SQLデータコンテキストで関連付けが設定されていることを前提としています。

var transPerCategory = db.Categories
                         .Select( c => new {
                             Name = c.CategoryName,
                             Amount = c.Products
                                       .Sum( p => p.Transactions
                                                   .Sum( t => t.TransactionAmount )
                                           )
                          });
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top