title: Options In-memory queries against cached objects in .Net applications
body: <p>I've developed a system that connects to external DBs and allows users to generate reports from these systems. Because I have no knowledge of the structure of these systems all my data sets are untyped which means I'm currently using DataTable's to store them.</p>
  
  <p>In order to provide speedy analysis I use the Dynamic Linq library to perform linq queries over the datasets, I cache the datasets using Microsoft AppFabric. I also use protobuf-net (datatable extension) to serialize the size of the DataTable before adding to the cache.  </p>
  
  <p>To execute a query I first need to read the object from the cache, then de-serialize and finally execute the Dynamic Linq query.  </p>
  
  <p>I was wondering if anybody can recommend any alternative approaches? I think the limiting factor in my solution is having to rely on DataTables so for example I can't use any of the linq querying capabilities of protobuf-net.  I also have to take the DataTable in and out of cache and de-serialize each time before performing the query.</p>