2009-11-28 68 views
3

我有一系列與主鍵/外鍵關聯連接的表。我有一個交易表,每個交易引用一個且僅有一個產品。每個產品可以在一個存在,只有一類:跨三個表級別的Linq查詢生成總和

 

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

我只是學習LinqToSql,和我用lambda表達式來訪問每個類別(X => x.Products)的產品。但我想要做的是訪問交易表,特別是按類別獲得所有交易的總和。

我確信我可以通過在我的Linq語句中創建手動連接來完成此操作。但似乎我不應該這樣做,因爲我的所有表格在模型中都以PF/FK的形式加入。

任何人都可以提供一個如何開始的例子嗎?

回答

2

沒有試圖編譯它,我認爲這會按照你想要的方式工作。它假定您有在LINQ to SQL數據上下文中設置的關聯。

var transPerCategory = db.Categories 
         .Select(c => new { 
          Name = c.CategoryName, 
          Amount = c.Products 
             .Sum(p => p.Transactions 
                .Sum(t => t.TransactionAmount) 
              ) 
          });