Некэшированные результаты в LINQPad - PullRequest
1 голос
/ 24 августа 2010

Как заставить LINQPad выдавать мне некэшированный результат запроса LINQ2SQL?

Сценарий таков:

1) изучить некоторые данные (из MyThings, где... выберите а). Первый ();2) изменить данные вне LINQPad сразу после (вызова службы) 3) повторно исследовать некоторые данные (из a в MyThings, где ... выберите a) .First ();

Кажется, что результаты кэшируются.: - /

1 Ответ

8 голосов
/ 25 августа 2010

LINQPad создает новый DataContext каждый раз, когда вы нажимаете F5, поэтому нет шансов кэширования между запусками запросов. Однако, если вы дважды дампите в одном запросе, второй результат будет кешироваться:

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
...