Не кэшированные результаты в linqpad
Вопрос
Как заставить 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