de acuerdo a todas las muestras, la conversión de SQL para LINQ por haber cláusula como en este ejemplo:LINQ A GRUPO SQL por tener generada sólo como subconsulta
SELECT NAME
FROM TABLES
GROUP BY NAME
HAVING COUNT(*) > 1
es: (vb.net)
from t in tables
group t by t.NAME into g = Group
where g.count > 1
select g
pero la declaración de LINQ anterior se traduce en el siguiente SQL:
SELECT [t1].[NAME] AS [Key]
FROM (
SELECT COUNT(*) AS [value], [t0].[NAME]
FROM [tables] AS [t0]
WHERE [t0].[NAME] <> @p0
GROUP BY [t0].[NAME]
) AS [t1]
WHERE [t1].[value] > @p1
nunca en condiciones de generar HAVING cláusula de forma LINQ. Digamos que HAVING y subconsulta group by WHERE son equivalentes en los resultados, pero ¿hay alguna diferencia en el rendimiento? ¿Qué hay de mantener mis consultas SQL originales al menos SIMILARES a las que LINQ genera subyacentes?