LINQPad中的非缓存结果

时间:2010-08-24 09:54:13

标签: caching linqpad

如何强制LINQPad从LINQ2SQL查询中获取非缓存结果?

情景如下:

1)检查一些数据(来自MyThings中的......选择a).First(); 2)在服务调用之后立即修改LINQPad外的数据 3)重新检查一些数据(来自MyThings中的......选择a).First();

这似乎是缓存结果。 : - /

1 个答案:

答案 0 :(得分:8)

每次点击F5时,LINQPad都会实例化一个全新的DataContext,因此查询运行之间不可能进行缓存。但是,如果在同一查询中转储两次,则第二个结果将缓存:

Customers.First (c => c.Name == "John").Dump();
Thread.Sleep (5000);
Customers.First (c => c.Name == "John").Dump();   // Result will be cached

这是凭借LINQ to SQL的对象跟踪。您可以通过关闭对象跟踪来禁用它 - 就像通常那样:

ObjectTrackingEnabled = false;
Customers.First (c => c.Name == "Tom").Dump();
Thread.Sleep (5000);
Customers.First (c => c.Name == "Tom").Dump();   // Result will not be cached