Использование 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: Это было зарегистрировано в Connect вhttps://connect.microsoft.com/SQLServer/feedback/details/572246/profiler-reports-ef4-queries-as-occurring-in-master.
решение1
Изучил обходной путь отОлаф Тиннемейер на StackOverflow: ИзменениеMultipleActiveResultSetsопция в строке подключения дляЛОЖЬзаставляет Profiler правильно сообщать о выполнении запроса в базе данных приложения.
Я по-прежнему считаю, что это ошибка SQL 2008, но пока могу обойтись и этим обходным решением.