如何將這個SQL查詢轉換爲LINQ?如何將此SQL查詢轉換爲LINQ?
SELECT eg.Name Name, sum(bi.PlannedAmount) Amount
FROM BudgetItem bi, Expense e, ExpenseGroup eg
WHERE Discriminator = 'ExpenseItem' AND
bi.ExpenseId = e.Id AND
e.ExpenseGroupId = eg.id AND
bi.MonthlyBudgetId = 1
GROUP BY eg.Name
到目前爲止,我想出了這條線:
var result = context
.ExpenseGroups
.GroupBy(eg => eg.Id, (s) => new { Name = s.Name, Amount = s.Expenses.SelectMany(e => e.Items).Sum(i => i.PlannedAmount) })
.ToList();
但我還是想不出用什麼表情添加「bi.MonthlyBudgetItem = 1」。
有沒有人有想法?
編輯#1: 我忘了提及實體之間的關係。每ExpenseGroup有很多費用,並且每費用有很多BudgetItems。
所以,ExpenseGroup =>費用=> BudgetItems
編輯#2: 我使用實體框架和每個ExpenseGroup具有費用對象的集合(每費用有ExpenseGroup對象),以及因爲每個Expense都有一個BudgetItem對象集合(每個BudgetItem對象都有一個Expense對象)。
那麼你的問題解決了嗎? –