2012-07-11 85 views
0

我在ASP.NET C#4中編碼。數據庫是SQL Server 2012.更改跟蹤 - 最簡單的場景

我有一個包含2000行和10列的表。我想在內存中加載此表,並且如果以任何方式更新/插入表,我想從數據庫刷新內存中的副本。

我看着SQL Server的變更跟蹤,雖然它做我所需要的,但它似乎我必須編寫相當多的代碼才能從變更函數中選擇 - 比我想要做的更簡單的編碼我有。

這個問題最好的(最簡單的)解決方案是什麼?我使用CacheDependency嗎?

+0

您可以創建自己的審計表來跟蹤使用觸發器的插入,更新和刪除操作。然後,當通過從某個時間戳搜索審計表來檢測到任何更新時,只需重新加載更新的記錄即可。 – mellamokb 2012-07-11 16:32:12

+0

我的希望是,這是一個很常見的情況,我可以直接掛鉤到一些現有的框架中,最好使用一行代碼。 CacheDependency浮現在腦海,但我不確定這是唯一的東西。 – user1044169 2012-07-11 16:50:45

回答

0

我目前有一個類似的問題:我正在實現一個rest服務,它返回一個包含50列以上的表,並且我想緩存客戶端上的數據以減少流量。

我在考慮這個實現:

我所有的表中的字段

ID AutoIncrement (primary key) 
Version RowVersion (a numeric value that will be incremented 
        every time the record is updated) 

要計算我用select

select count(*), max(id), sum(version) from ... 

刪除表的 「指紋」記錄更改第一個值,插入第二個值並更新第三個值。

所以,如果三個值之一改變,我不得不重新加載表。