我开发了一个连接外部数据库的系统,允许用户从这些系统生成报告。因为我不了解这些系统的结构,所以我的所有数据集都是无类型的,这意味着我目前正在使用DataTable来存储它们。
为了提供快速分析,我使用Dynamic Linq库对数据集执行linq查询,我使用Microsoft AppFabric缓存数据集。在添加到缓存之前,我还使用protobuf-net(数据表扩展)来序列化DataTable的大小。
要执行查询,我首先需要从缓存中读取对象,然后反序列化并最终执行Dynamic Linq查询。
我想知道是否有人可以推荐任何替代方法?我认为我的解决方案中的限制因素是不得不依赖DataTables,例如我不能使用protobuf-net的任何linq查询功能。我还必须在执行查询之前将DataTable放入和移出缓存并进行反序列化。