我正在开发一个使用实体框架访问数据库的.net客户端应用程序。这是一个多用户应用程序,有时可能几天内没有任何更改,有时一次有数百个更改。在数据库更改时重新加载缓存
我需要缓存非常多的数据,因为需要完成一些检查并显示给用户。当一个应用程序实例中的某些内容发生更改时,我解决了一个缓存更新其他缓存的问题然而,我不确定当应用程序的其他实例发生更改时,最佳方法是什么。
我试图使用SqlDependency
来使我的缓存失效,但是这会迫使我在只有一位发生变化时重新载入非常多的数据。性能不太好。当使用SqlDependecy
的应用程序在数据上改变某些内容时,它也会触发,因此一次更改会使缓存更新两次。
因为我从来没有开发过一定数量的缓存,所以我不知道如何继续下去。做这个的最好方式是什么?
为什么单个位更改迫使您重新加载非常多的数据? – Paparazzi 2013-04-23 13:26:17
嗯,也许我做错了什么,但是当我收到通知时,我不知道到底发生了什么变化,所以我不能重新加载更改后的数据。我需要将所有可能在SqlCommand下更改的内容进行重新表示。例如表'A'中的所有元素,其中fk ... = x。可以是相当多的数据。 – Patrick 2013-04-23 13:56:09
了解,但仍然不会强制您重新加载所有数据。您可以读取读取数据并仅更新已更改的数据。或者你可以在SQL上实现一个触发器来写出更改,因此你只需要检查该表。 – Paparazzi 2013-04-23 14:38:50