我在Linqpad中执行一个长时间运行的查询,从我的数据库中获取一些数据。然后我需要分析这些数据。问题是,每次更改分析查询时,我都不想获取数据。
有什么最简单的方法可以像缓存一样将数据存储在某个地方,并且仍然具有用于分析的Linq功能?LinqPad是否为此目的提供了什么?我知道它可以导出为csv或xml文件,但需要更方便的东西。
发布于 2020-09-17 02:23:47
LINQPad提供了Cache
扩展方法和Util.Cache
方法,用于在运行期间缓存内存中的数据。Cache
扩展方法在IEnumerable<T>
上工作,而Util.Cache
方法在任何类型上工作。
下面是如何使用Cache
扩展方法:
var customers = Customers.Cache(); // Slow only on the first execution
customers.Where (c => c.Name == "Joe").Dump();
运行查询后,将第二行更改为如下所示:
customers.Where (c => c.Name == "Mary").Dump();
当您重新执行查询时,LINQPad将不会从数据库中获取任何内容,因为customers
将在第一次运行时缓存在内存中。
您还可以缓存数据的子集:
var localCustomers = Customers.Where (c => c.Country == "US").Cache();
localCustomers.Where (c => c.Name == "Mary").Dump();
在LINQPad的内置教程和参考中有更多的例子。按Ctrl+,打开搜索对话框,单击Search 并搜索'Caching‘。
如果需要,可以通过查询菜单(Ctrl+Shift+F5)上的选项来清除缓存。
https://stackoverflow.com/questions/63917369
复制相似问题