5

Estoy buscando analizar el rendimiento del SQL generado desde Entity Framework 1, usando MS SQL 2008.¿Mi SQL generado por Entity Framework se ejecuta dos veces?

Cuando ejecuto un rastreo en SQL Server Profiler 2008, noté algo que no esperaba. Para cada consulta que se ejecuta, obtengo dos declaraciones RPC:Completed, separadas por un exec sp_reset_connection statement. ¿Es este el comportamiento esperado?

SQL Server Profiler Results

+0

¿Puedes publicar el código que estás ejecutando? –

+0

@ajcvickers El sistema con el que estoy tratando es bastante grande, por lo que no será posible suministrar el código tal como está, me tomará algún tiempo reunir un prototipo. ¿Supongo que esto tampoco es lo que esperarías? – Tr1stan

+0

Cada vez que se enumera una consulta de LINQ to Entities (por ejemplo, con ToList()), la consulta se ejecuta en la base de datos. Me preguntaba si era esto. –

Respuesta

2

Respuesta: Sí

Resulta que era una "característica" dentro AutoMapper que estaba causando mi problema.

Ver aquí: When Mapping an IQueryable I see the database getting hit twice in my profiler.

desgracia porque estoy usando la versión 1.1 (.NET 3.5) esto no se ve como que va a ser arreglados.

Solución: llamada .ToList() en el objeto IQueryable antes de pasarlo al método Mapper.Map(). Permitir que el asignador enumere el objeto provoca una doble ejecución.

Cuestiones relacionadas