Estoy buscando ayuda para convertir la siguiente consulta sql a LINQ a entidades en C#.Convertir consulta SQL (con subconsulta correlacionada) a LINQ en 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
La consulta lee todos los fondos activos en la base de datos junto con su último valor unitario. La tabla del Fondo que contiene un registro para cada fondo. La tabla FundUnit contiene un registro de valor unitario para cada fondo por fecha. Los valores unitarios de fechas anteriores también se dejan en la tabla para mantener un historial.
No todos los fondos reciben un nuevo valor unitario cada día, por lo tanto, la fecha de vigencia más reciente para todos los fondos no es necesariamente la misma. Por lo tanto, la función max (effectivedate) debe aplicarse a la tabla de unidades que se debe aplicar por fondo, de ahí la subconsulta correlacionada.
Gracias
lo siento, veo que es linq para las entidades. se aplica el mismo principio: http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx – Kell