Cache确实提高了效率,但是如何让Cache与数据库同步呢!

解决方案 »

  1.   

    Cache中的每一个项都可以设置一个依赖文件,只要这个依赖文件有变得,这个缓存就自动无效.但不可以依赖一个数据库.不过还是可以实现的,我以前做过,下面是我做的思想:
    把数据缓存起来,然后设置这个缓存项的依赖文件,当在添加数数据,修改数据和删除数据时改变这个这个文件内容,如可以把文件内容改成当前的时间.这样每一次数据有变化的时候缓存项自己被删除,在缓存被删除的时候我们可以设置一个代理,让这个代理重新去读取数据然后缓存起来,这样就可以跟数据库里面的数据同步了.
      

  2.   

    如果是ACCESS 就非常简单,
    Cache.Insert( cacheName,
         object,
         new CacheDependency( @"c:\access.mdb" ), 
                 );
    /////////////////////////////////////////////////////////////////
    但如果是SQL SERVER 就可能要加入一个临时的文件,当数据库修改时此临时文件改变,Cache
    失效.
    Cache.Insert( cacheName,
         object,
         new CacheDependency( @"c:\temp.xml" ), 
                 );