Новый LINQPad
Для всех кто работает с LINQ, Entity Framework или просто изучает C#, LINQPad - незаменимая тулза. Поэтому выход новой (уже 2.42 / 4.42) версии влечет за собой приятные новшества.
LINQPad предоставляет новый extension метод Cache для кэширования результатов запроса. Cache () очень прост, так что вы можете использовать его в существующих запросах без особых изменений.
Чтобы продемонстрировать, попробуйте выполнить следующий запрос, который загружает веб-страницу, а потом показывает, сколько раз слово 'Semaphore' появляется на каждой странице:
var webPages = ( from page in "default.aspx part2.aspx part3.aspx part4.aspx part5.aspx".Split() select new { Uri = page, Text = new System.Net.WebClient().DownloadString ("http://albahari.com/threading/" + page) } ).Cache(); var query = from page in webPages select new { page.Uri, matches = Regex.Matches (page.Text, @"(?i)\b" + "semaphore" + @"\b").Count }; query.Dump();
Теперь измените "Semaphore" чем-то другим и выполните запрос повторного. Обратите внимание, что он выполняется мгновенно - так мы вызвали Cache на медленно выполняемой части запроса.
Вы можете вызвать Cache() несколько раз в запросе для кэширования различных наборов результатов. LINQPad будет выделять отдельный слоты кэша( если результаты одинаковы) и вы можете вызвать Cache() с заданным уникальным ключом.
Вы можете очистить кэш в любое время, вызвав AppDomain запрос (Shift + F5).
Cache() работает в (lazily-evaluated) IEnumerable
Вы также можете закэшировать non-lazy последовательности (к примеру массивы) и другие объекты, с помощью кэша метод Util класса, который принимает Func
Customer c = Util.Cache (() => Customers.First());
LINQPad теперь также поддерживает:
• Базу данных Oracle (ну наконец-то!) • the Microsoft DataFlow CTP • ключевые слова async и await ( для этого нужно установить Framework 4.5 beta или Async CTP) • кастомизированые имплементации IObservable и IAsyncEnumerable • Entity Framework 4.1 / 4.2 / 4.3. ESQL и SQL запросы уже работают даже для code-first connections.
Приятного кодинга!
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |