Мой Entity Framework сгенерировал SQL дважды? - PullRequest
5 голосов
/ 06 марта 2012

Я смотрю на анализ производительности SQL, сгенерированного из Entity Framework 1, используя MS SQL 2008.

Когда я запускаю трассировку в SQL Server Profiler 2008, я заметил то, чего не сделаложидать.Для каждого выполняемого запроса я получаю два RPC:Completed оператора, разделенных exec sp_reset_connection statement.Это ожидаемое поведение?

SQL Server Profiler Results

1 Ответ

3 голосов
/ 24 апреля 2012

Ответ: Да

Оказывается, что это была "особенность" в AutoMapper , которая вызывала мою проблему.

См. Здесь: При отображении IQueryable, я вижу, что база данных получает дважды в моем профилировщике.

К сожалению, потому что я использую версию 1.1 (.net 3.5), похоже, что это не исправят.

Решение: вызовите .ToList() для объекта IQueryable до , передав его в метод Mapper.Map(). Разрешение Mapper перечислять объект вызывает двойное выполнение.

...