Вопрос

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

Сценарий это:

1) Осмотрите некоторые данные (из A в моих моментах, где ... выберите A) .First (); 2) Измените данные за пределами LinqPad сразу после (вызов сервиса) 3) повторно осмотрите некоторые данные (из A в моих моментах, где ... выберите A) .First ();

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

Это было полезно?

Решение

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 для отслеживания объектов 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top