0

我想根據數據庫行中的更改使緩存無效。我已經取得了成功,同時使用相同的數據庫和表,但是蔭不能夠做到這一點的基本途徑與LINQ做同樣的事情:無法使依賴於sql查詢的緩存無效

這裏是我寫的代碼,請大家幫忙:

​​

我正在使用Sql Server 2005並使用可用於命令通知的完全限定查詢。

我在Linq的其他代碼完全適用於相同的數據庫和表,因此沒有關於Service Broker或其他未設置權限的信息。 PLease幫助我擺脫這個問題。

回答

1

本文有一些故障排除步驟The Mysterious Notification,以及解釋事情如何工作,有助於理解爲什麼某些事情被破壞。您應該驗證每件機器的工作原理:

  • 檢查的訂閱通知獲取sys.dm_qn_subscriptions
  • 檢查的通知得到fired
  • 檢查通知得到delivered(你可以放心地忽略一切創造但是,由於SqlDependency始終是本地的)

在不相關的說明中,您可以直接使用LINQ-to-SQL和Query Notifications: LinqToCache

0

要做的最好的事情是:看看sql日誌,如果發生任何通知問題,日誌將顯示!

錯誤日誌位於 程序Files \ Microsoft SQL服務器\ MSSQL.n \ MSSQL \ LOG \ ERRORLOG和ERRORLOG.n

在我的情況下,由於發生數據庫恢復的問題,要解決,日誌顯示我的問題,然後,我執行

use DatabaseName EXEC sp_changedbowner 'sa'