title: What is the best way to cache a dataset with memory like performance, and having it tied to database changes?
body: <p>Have anyone came across a opensource project or library in .Net to act as a caching layer between database and the aplication that automaticaly or on request sincronizes the data, so that performance could be improved.</p>
  
  <p>The .Net stack as some festures that can be used, like SqlDependencies and the Cache, but both have problems.</p>
  
  <p><em>Tested alternatives:</em></p>
  
  <ul>
  <li><p>SqlDependency are table based, so when one record on table is updated the whole table is invalidated.</p></li>
  <li><p>The Cache object works well but lack the object management features to manage the changes in objects.</p></li>
  <li>DataTable's in Cache may be a solution, but i would like to deal with the cache as objects not DataRow's.</li>
  </ul>
  
  <p>Any sugestions on system specialized in this task? Any good ORM that can do that?</p>