Попытка сделать подзапрос в Linq ... возникли проблемы! - PullRequest
2 голосов
/ 16 декабря 2008

Я пытаюсь преобразовать некоторые из моих хранимых процедур в Linq, и у меня возникают проблемы со следующей инструкцией Transact-Sql:

Select 
    Year(p.StartDate) As Year,
    (Select Sum(t.Units) From Time t Where Year(t.TransactionDate) = Year(p.StartDate)) As Hours,
    (Select Sum(i.Price) From Invoice i Where Year(i.CreatedDate) = Year(p.StartDate)) As Invoices
From 
    Period p
Group By
    Year(p.StartDate)
Order By
    Year(p.StartDate)

Я работаю с LinqPad, чтобы попытаться выяснить это ... любая помощь будет принята с благодарностью!

Прогресс

Пока у меня есть следующее ... просто пытаюсь понять, как преобразовать подзапросы:

from p in Periods
group p by p.StartDate.Year into g
orderby g.Key
select new 
{
    g.Key,
}

1 Ответ

5 голосов
/ 16 декабря 2008

Попробуйте:

from p in Periods
group p by p.StartDate.Year into g
orderby g.Key
select new
{
g.Key,
Hours = (from t in Times where t.TransactionDate.Year == g.Key select t).Sum(t => t.Units),
Invoices = (from i in Invoices where i.CreatedDate.Year == g.Key select i).Sum(i => i.Price)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...