Veo un rendimiento realmente extraño relacionado con una consulta muy simple usando Entity Framework Code-First con .NET Framework versión 4. La consulta LINQ2Entities se ve así:
context.MyTables.Where(m => m.SomeStringProp == stringVar);
Esto tarda más de 3000 milisegundos en ejecutarse. El SQL generado parece muy simple:
SELECT [Extent1].[ID], [Extent1].[SomeStringProp], [Extent1].[SomeOtherProp],
...
FROM [MyTable] as [Extent1]
WHERE [Extent1].[SomeStringProp] = '1234567890'
Esta consulta se ejecuta casi instantáneamente cuando se ejecuta a través de Management Studio. Cuando cambio el código C # para usar la función SqlQuery, se ejecuta en 5-10 milisegundos:
context.MyTables.SqlQuery("SELECT [Extent1].[ID] ... WHERE [Extent1].[SomeStringProp] = @param", stringVar);
Entonces, exactamente el mismo SQL, las entidades resultantes tienen un seguimiento de cambios en ambos casos, pero hay una gran diferencia de rendimiento entre las dos. ¿Lo que da?
Performance Considerations for Entity Framework 5