Преобразование SQL-запроса (с коррелированным подзапросом) в LINQ на C #

Мне нужна помощь в преобразовании следующего запроса sql в LINQ для сущностей на C #.

SELECT f.FundId, u.UnitValue
FROM Fund f
INNER JOIN FundUnit u ON f.FundId= u.FundId
WHERE u.EffectiveDate = (SELECT MAX(effectivedate) 
                         FROM FundUnit k 
                         WHERE u.FundId = k.FundId)
AND f.Active = 1
ORDER BY f.FundId

Запрос считывает все активные средства в базе данных вместе с их последней стоимостью единицы. Таблица Fund, содержащая записи для каждого фонда. Таблица FundUnit содержит запись стоимости единицы для каждого фонда на дату. Значения единиц за предыдущие даты также остаются в таблице для ведения истории.

Не все фонды получают новую стоимость пая каждый день, поэтому последняя дата вступления в силу для всех фондов не обязательно одинакова. Следовательно, функция max (фактическая дата) должна применяться к таблице единиц, которая должна применяться для каждого фонда - отсюда и коррелированный подзапрос.

Спасибо

6
задан Dean 22 November 2010 в 17:21
поделиться