5

Sto analizzando le prestazioni dell'SQL generato da Entity Framework 1, utilizzando MS SQL 2008.Il mio Entity Framework ha generato l'esecuzione SQL due volte?

Quando eseguo una traccia in SQL Server Profiler 2008, ho notato qualcosa che non mi aspettavo. Per ogni query che viene eseguita, ottengo due istruzioni RPC:Completed, separate da un exec sp_reset_connection statement. È questo il comportamento previsto?

SQL Server Profiler Results

+0

Puoi pubblicare il codice che stai utilizzando? –

+0

@ajcvickers Il sistema con cui ho a che fare è piuttosto grande, quindi fornire il codice non è possibile, mi ci vorrà del tempo per ottenere un prototipo insieme. Suppongo che non sia quello che ti aspetteresti allora? – Tr1stan

+0

Ogni volta che viene enumerata una query LINQ to Entities (ad esempio con ToList()), la query viene eseguita sul database. Mi stavo chiedendo se fosse questo. –

risposta

2

Risposta: Sì

Si scopre che si trattava di una "caratteristica" all'interno AutoMapper che stava causando il mio problema.

vedere qui: When Mapping an IQueryable I see the database getting hit twice in my profiler.

Purtroppo perché sto utilizzando la versione 1.1 (.net 3.5) questo non sembra come sta andando per ottenere fisso.

Soluzione: chiamata .ToList() sull'oggetto IQueryable prima passarlo al metodo Mapper.Map(). Consentire al Mapper di enumerare l'oggetto provoca una doppia esecuzione.

Problemi correlati