2012-07-11 61 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 ... 

删除表的 “指纹”记录更改第一个值,插入第二个值并更新第三个值。

所以,如果三个值之一改变,我不得不重新加载表。