這是 Profiler 或實體框架中的錯誤嗎?

這是 Profiler 或實體框架中的錯誤嗎?

將Entity Framework 4 與預存程序和SQL Server 2008 SP1 一起使用...執行SQL Server Profiler(TSQL_SPs 範本)時,顯示我的預存程序呼叫及其語句的行表示它們在DatabaseID = 1(Master)中執行,但它是實際上發生在我的應用程式資料庫中(ID = 8)。過程正確執行並返回數據,並且它們僅存在於我的應用程式資料庫中,那麼為什麼 Profiler 將這些行標記為在 Master 中?這是 Profiler 中的錯誤嗎?這是 EF4 的錯誤嗎?

請注意,針對 SQL 2000 執行個體執行相同的程式碼,Profiler 會正確顯示應用程式的資料庫 ID。

更新:我現在已經在新安裝的 SQL Server 2008 R2 上對此進行了測試,它仍然顯示這一點,就好像它發生在 Master 中一樣。

更新2:這已記錄到 Connecthttps://connect.microsoft.com/SQLServer/feedback/details/572246/profiler-reports-ef4-queries-as-occurring-in-master

答案1

學習了一個解決方法StackOverflow 上的 Olaf Tinnemeyer:改變多個活動結果集連接字串中的選項錯誤的使 Profiler 正確報告正在應用程式資料庫中執行的查詢。

我仍然認為這是 SQL 2008 中的一個錯誤,但我現在可以接受解決方法。

相關內容