Назад | Перейти на главную страницу

Это ошибка в Profiler или Entity Framework?

Использование Entity Framework 4 с хранимыми процедурами и SQL Server 2008 SP1 ... При запуске SQL Server Profiler (шаблон TSQL_SPs) в строках, которые показывают мой вызов хранимой процедуры и его инструкции, говорится, что они выполнялись в DatabaseID = 1 (Master), но это фактически происходит в базе данных моего приложения (ID = 8). Процедуры выполняются правильно и возвращают данные, и они существуют только в базе данных моего приложения, так почему Profiler помечает эти строки как находящиеся в Master? Это ошибка в Profiler? Это ошибка в EF4?

Обратите внимание, что при запуске того же кода для экземпляра SQL 2000 Profiler правильно отображает идентификатор базы данных приложения.

ОБНОВИТЬ: Я проверил это на новой установке SQL Server 2008 R2, и он все еще отображает это, как если бы это произошло в Master.

ОБНОВЛЕНИЕ 2: Это было зарегистрировано для подключения на https://connect.microsoft.com/SQLServer/feedback/details/572246/profiler-reports-ef4-queries-as-occurring-in-master.

Узнал обходной путь от Олаф Тиннемейер в StackOverflow: Изменение MultipleActiveResultSets параметр в строке подключения к ЛОЖНЫЙ заставляет Profiler правильно сообщать, что запрос выполняется в базе данных приложения.

Я все еще думаю, что это ошибка SQL 2008, но пока могу жить с обходным решением.