LINQ. Язык интегрированных запросов в C# 2010 для профессионалов

Адам Фримен, Джозеф Раттц-мл.

Благодаря этой книге, вы изучите следующие вопросы:

  • Как эффективно задействовать все новые возможности языка C# 2010, связанные с LINQ, включая методы расширений, лямбда-выражения, анонимные типы данных и частичные методы.
  • Как использовать LINQ to Objects для запроса информации из коллекций данных, расположенных в памяти, таких как массивы, ArrayList и списки.
  • Почему некоторые запросы являются отложенными, как они влияют на код, и каким образом заставить их работать максимально эффективно.
  • Как использовать LINQ to XML для создания, манипулирования и поиска в XML-данных.
  • Как осуществлять запросы в наборы данных с помощью LINQ to DataSet, сосуществуя с унаследованным кодом, и как использовать LINQ для работы с базами данных, отличными от SQL Server.
  • Как запрашивать базы данных посредством LINQ to SQL, создавать собственные сущностные классы и обрабатывать конфликты параллельного доступа.

Книга рассчитана на программистов разной квалификации, а также будет полезна для студентов и преподавателей дисциплин, связанных с программированием и разработкой для .NET.

«Эта книга целиком и полностью посвящена написанию кода. Она начинается с кода и кодом же завершается. При написании книги мы преследовали цель предложить вам цельный набор полезных примеров применения LINQ. Вместо того чтобы показывать одиночные и простые примеры, мы попытались представить полную картину и продемонстрировать всю мощь доступных операций и прототипов LINQ. Благодаря этой информации, вы сможете сразу же приступить к эффективному использованию LINQ и извлечь максимум из этого мощного и гибкого инструмента.

В книге мы стремились давать информацию в такой форме, которая бы позволила использовать ее непосредственно в разрабатываемых проектах. Вместо того чтобы уводить в сторону от базовых принципов, рассматривая мало пригодные для применения крупные демонстрационные приложения, в этой книге внимание фокусируется на каждой операции, методе и классе LINQ, предоставляя сведения, которые нужны - кратко и полно. Например, код, иллюстрирующий конфликты параллельного доступа, в действительности их и создает, так что можно пошагово пройти код, уловить суть проблемы и разобраться в способе ее разрешения.

Книга предназначена для тех, кто знаком с языком C# и желает изучить технологию LINQ и языковые средства C# 4.0, связанные с LINQ. При этом знание всех особенностей версии .NET 4.0 не требуется. Там где нужны более глубокие знания, объяснения начинаются с нуля, потому разобраться сможет даже новичок в C#». Адам Фримен и Джозеф Раттц-мл.

Издательство: Вильямс, 2011 г.

ISBN 978-5-8459-1701-0, 978-1430-22653-6

Количество страниц: 656.

Содержание книги «LINQ. Язык интегрированных запросов в C# 2010 для профессионалов»:

  • 15 Об авторах
  • 15 О техническом рецензенте
  • 16 Благодарности
  • 16 От издательства
  • 16 Исходный код примеров
  • 17 Часть I. LINQ: язык интегрированных запросов в C# 2010
  • 18 Глава 1. Знакомство с LINQ
    • 18 Сдвиг парадигмы
      • 19 Запрос к XML
      • 20 Запрос к базе данных SQL Server
    • 21 Появление LINQ
      • 21 LINQ поддерживает запросы данных
      • 22 Как получить LINQ
    • 23 LINQ предназначен не только для запросов
    • 25 Советы начинающим
      • 26 Используйте ключевое слово var, когда запутались
      • 27 Используйте операции Cast или OfType для унаследованных коллекций
      • 28 Отдавайте предпочтение операции OfType перед Cast
      • 28 Не рассчитывайте на безошибочность запросов
      • 29 Используйте преимущество отложенных запросов
      • 30 Используйте свойство Log из DataContext
      • 31 Используйте форум LINQ
    • 31 Резюме
  • 32 Глава 2. Расширения языка C# для LINQ
    • 32 Дополнения языка C#
      • 32 Лямбда-выражения
      • 37 Деревья выражений
      • 38 Ключевое слово var, инициализация объектов и анонимные типы
      • 43 Расширяющие методы
      • 47 Частичные методы
      • 49 Выражения запросов
    • 58 Резюме
  • 61 Часть II. LINQ to Objects
  • 62 Глава 3. Введение в LINQ to Objects
    • 62 Обзор LINQ to Objects
    • 63 Интерфейс IEnumerable<T>, последовательности и стандартные операции запросов
    • 64 Возврат IEnumerable<T>, выдача и отложенные запросы
    • 67 Делегаты Func
    • 68 Алфавитный указатель стандартных операций запросов
    • 69 История о двух синтаксисах
    • 70 Резюме
  • 71 Глава 4. Отложенные операции
    • 71 Необходимые пространства имен
    • 71 Необходимые сборки
    • 71 Общие классы
    • 73 Организация отложенных операций по назначению
      • 73 Ограничение
      • 75 Проекция
      • 83 Разбиение
      • 90 Конкатенация
      • 92 Упорядочивание
      • 107 Соединение
      • 111 Группирование
      • 116 Множества
      • 121 Преобразование
      • 127 Элемент
      • 131 Генерация
    • 134 Резюме
  • 135 Глава 5. Не отложенные операции
    • 135 Необходимые пространства имен
    • 135 Общие классы
    • 138 Организация не отложенных операций по назначению
      • 138 Преобразование
      • 149 Эквивалентность
      • 151 Элемент
      • 163 Квантификаторы
      • 168 Агрегация
    • 180 Резюме
  • 181 Часть III. LINQ to XML
  • 182 Глава 6. Введение в LINQ to XML
    • 184 Введение
    • 184 Обман W3C DOM XML API
    • 186 Резюме
  • 187 Глава 7. Интерфейс LINQ to XML API
    • 187 Необходимые пространства имен
    • 187 Значимые проектные усовершенствования API-интерфейса
      • 188 Конструирование деревьев XML было упрощено с помощью функционального конструирования
      • 190 Центральная роль элемента вместо документа
      • 191 Имена, пространства имен и префиксы
      • 194 Извлечение значения узла
    • 196 Объектная модель LINQ to XML
    • 197 Отложенное выполнение запросов, удаление узлов и «проблема Хэллоуина»
    • 199 Создание XML
      • 200 Создание элементов с помощью XElement
      • 202 Создание атрибутов с помощью XAttribute
      • 203 Создание комментариев с помощью XComment
      • 203 Создание контейнеров с помощью XContainer
      • 204 Создание объявлений с помощью XDeclaration
      • 204 Создание типов документов с помощью XDocumentType
      • 206 Создание документов с помощью XDocument
      • 206 Создание имен с помощью XName
      • 207 Создание пространств имен с помощью XNamespace
      • 207 Создание узлов с помощью XNode
      • 207 Создание инструкций обработки с помощью XProcessingInstruction
      • 209 Создание потоковых элементов с помощью XStreamingElement
      • 210 Создание текста с помощью XText
      • 211 Создание CData с помощью XCData
    • 211 Вывод XML
      • 211 Сохранение с помощью XDocument.Save()
      • 212 Сохранение с помощью XElement.Save()
    • 213 Ввод XML
      • 213 Загрузка с помощью XDocument.Load()
      • 215 Загрузка с помощью XElement.Load()
      • 215 Разбор содержимого с помощью методов XDocument.Parse() или XElement.Parse()
    • 216 Обход XML
      • 217 Свойства обхода
      • 217 Обход вперед с помощью XNode.NextNode
      • 218 Обход назад с помощью XNode.PreviousNode
      • 220 Методы обхода
    • 232 Модификация XML
      • 233 Добавление узлов
      • 237 Удаление узлов
      • 239 Обновление узлов
      • 242 Вызов XElement.SetElementValue() на дочерних объектах XElement
    • 244 Атрибуты XML
      • 244 Создание атрибута
      • 244 Обход атрибутов
      • 247 Модификация атрибутов
    • 251 Аннотации XML
      • 251 Добавление аннотаций с помощью XObject.AddAnnotation()
      • 251 Обращение к аннотациям с помощью XObject.Annotation() или XObject.Annotations()
      • 251 Удаление аннотаций с помощью XObject.RemoveAnnotations()
      • 251 Пример аннотаций
    • 254 События XML
      • 255 XObject.Changing
      • 255 XObject.Changed
      • 255 Несколько примеров событий
      • 258 Трюк, забава или неопределенность?
    • 259 Резюме
  • 260 Глава 8. Операции LINQ to XML
    • 260 Введение в операции LINQ to XML
    • 261 Ancestors
      • 261 Прототипы
      • 261 Примеры
    • 265 AncestorsAndSelf
      • 265 Прототипы
      • 265 Примеры
    • 267 Attributes
      • 267 Прототипы
      • 267 Примеры
    • 269 DescendantNodes
      • 269 Прототипы
      • 269 Примеры
    • 270 DescendantNodesAndSelf
      • 271 Прототипы
      • 271 Примеры
    • 272 Descendants
      • 272 Прототипы
      • 272 Примеры
    • 274 DescendantsAndSelf
      • 274 Прототипы
      • 274 Примеры
    • 276 Elements
      • 276 Прототипы
      • 277 Примеры
    • 278 InDocumentOrder
      • 278 Прототипы
      • 279 Примеры
    • 280 Nodes
      • 280 Прототипы
      • 280 Примеры
    • 281 Remove
      • 281 Прототипы
      • 282 Примеры
    • 284 Резюме
  • 285 Глава 9. Дополнительные возможности LINQ to XML
    • 285 Необходимые пространства имен
    • 286 Запросы
      • 286 Отсутствие иерархического спуска
      • 288 Сложный запрос
    • 293 Трансформации
      • 294 Трансформации с использованием XSLT
      • 295 Трансформация с использованием функционального конструирования
      • 298 Советы
    • 303 Проверка достоверности
      • 303 Расширяющие методы
      • 303 Прототипы
      • 304 Получение схемы XML
      • 306 Примеры
    • 316 XPath
      • 316 Прототипы
      • 316 Примеры
    • 317 Резюме
  • 319 Часть IV. LINQ to DataSet
  • 320 Глава 10. Операции LINQ to DataSet
    • 321 Необходимые сборки
    • 321 Необходимые пространства имен
    • 321 Общий код для примеров
    • 322 Операции множеств DataRow
      • 323 Distinct
      • 326 Except
      • 328 Intersect
      • 330 Union
      • 331 SequenceEqual
    • 333 Операции над полями DataRow
      • 336 Field<T>
      • 341 SetField<T>
    • 343 Операции DataTable
      • 344 AsEnumerable
      • 344 CopyToDataTable<DataRow>
      • 345 Примеры
    • 349 Резюме
  • 350 Глава 11. Дополнительные возможности LINQ to DataSet
    • 350 Необходимые пространства имен
    • 350 Типизированные DataSet
    • 352 Собираем все вместе
    • 355 Резюме
  • 357 Часть V. LINQ to SQL
  • 358 Глава 12. Введение в LINQ to SQL
    • 359 Введение в LINQ to SQL
      • 360 DataContext
      • 361 Сущностные классы
      • 361 Ассоциации
      • 362 Обнаружение конфликтов параллельного доступа
      • 362 Разрешение конфликтов параллельного доступа
    • 363 Предварительные условия для запуска примеров
      • 363 Получение соответствующей версии базы данных Northwind
      • 363 Генерация сущностных классов Northwind
      • 364 Генерация XML-файла отображения Northwind
    • 364 Использование LINQ to SQL
    • 365 IQueryable<T>
    • 365 Некоторые общие методы
      • 365 GetStringFromDb()
      • 366 ExecuteStatementInDb()
    • 367 Резюме
  • 368 Глава 13. Советы и инструменты, связанные с LINQ to SQL
    • 368 Введение
    • 368 Советы
      • 369 Используйте свойство DataContext.Log
      • 370 Используйте метод GetChangeSet()
      • 370 Подумайте об использовании частичных классов или файлов отображения
      • 370 Подумайте об использовании частичных методов
    • 370 Инструменты
      • 370 SQLMetal
      • 376 Object Relational Designer
    • 387 Совместное использование SQLMetal и Object Relational Designer
    • 388 Резюме
  • 389 Глава 14. Операции LINQ to SQL для баз данных
    • 389 Предварительные условия для запуска примеров
      • 389 Некоторые общие методы
      • 390 Использование API-интерфейса LINQ to SQL
    • 390 Стандартные операции для баз данных
      • 390 Вставки
      • 393 Запросы
      • 415 Обновления
      • 418 Удаления
    • 421 Переопределение операторов модификации базы данных
      • 421 Переопределение метода Insert
      • 421 Переопределение метода Update
      • 422 Переопределение метода Delete
      • 422 Пример
      • 424 Переопределение в Object Relational Designer
      • 424 Соображения
    • 424 Трансляция SQL
    • 426 Резюме
  • 428 Глава 15. Сущностные классы LINQ to SQL
    • 428 Предварительные условия для запуска примеров
    • 428 Сущностные классы
      • 428 Создание сущностных классов
      • 456 XML-схема внешнего файла отображения
      • 456 Сравнение проекций на сущностные и на несущностные классы
    • 461 Расширение сущностных классов с помощью частичных методов
    • 462 Важные классы API-интерфейса System.Data.Linq
      • 463 EntitySet<T>
      • 463 EntityRef<T>
      • 465 Table<T>
      • 465 IExecuteResult
      • 466 ISingleResult<T>
      • 467 IMultipleResults
    • 468 Резюме
  • 469 Глава 16. Класс DataContext в LINQ to SQL
    • 469 Предварительные условия для запуска примеров
      • 469 Некоторые общие методы
      • 469 Использование API-интерфейса LINQ to SQL
    • 469 Класс [Your]DataContext
    • 470 Класс DataContext
      • 472 Класс DataContext реализует интерфейс IDisposable
      • 473 Основное назначение
      • 478 Время жизни контекста данных
      • 479 DataContext() и [Your]DataContext()
      • 490 SubmitChanges()
      • 496 DatabaseExists()
      • 496 CreateDatabase()
      • 498 DeleteDatabase()
      • 498 CreateMethodCallQuery()
      • 500 ExecuteQuery()
      • 502 Translate()
      • 503 ExecuteCommand()
      • 505 ExecuteMethodCall()
      • 511 GetCommand()
      • 512 GetChangeSet()
      • 514 GetTable()
      • 515 Refresh()
    • 521 Резюме
  • 522 Глава 17. Конфликты параллельного доступа LINQ to SQL
    • 522 Предварительные условия для запуска примеров
      • 522 Некоторые общие методы
      • 522 Использование API-интерфейса LINQ to SQL
    • 522 Конфликты параллелизма
      • 523 Оптимистический параллелизм
      • 533 Пессимистический параллелизм
      • 535 Альтернативный подход для средних звеньев и серверов
    • 538 Резюме
  • 539 Глава 18. Дополнительные возможности LINQ to SQL
    • 539 Предварительные условия для запуска примеров
      • 539 Использование API-интерфейса LINQ to SQL
      • 539 Использование API-интерфейса LINQ to XML
    • 539 Представления базы данных
    • 541 Наследование сущностных классов
    • 546 Транзакции
    • 548 Резюме
  • 549 Часть VI. LINQ to Entities
  • 550 Глава 19. Введение в LINQ to Entities
    • 551 Введение
      • 552 ObjectContext
      • 552 Сущностные классы
      • 553 Ассоциации
    • 553 Предварительные условия для запуска примеров
      • 553 Получение соответствующей версии базы данных Northwind
      • 553 Генерация сущностной модели данных Northwind
    • 556 Использование API-интерфейса LINQ to Entities
    • 556 IQueryable<T>
    • 556 Некоторые общие методы
      • 557 GetStringFromDo()
      • 557 ExecuteStatementInDb()
    • 558 Резюме
  • 559 Глава 20. Операции LINQ to Entities
    • 559 Предварительные условия для запуска примеров
      • 559 Некоторые общие методы
    • 559 Стандартные операции базы данных
      • 560 Вставки
      • 565 Запросы
      • 578 Обновления
      • 579 Удаления
      • 581 Удаление связанных объектов
    • 586 Управление параллельным доступом
      • 587 Включение проверок параллелизма
      • 588 Обработка конфликтов параллелизма
    • 592 Резюме
  • 593 Глава 21. Классы LINQ to Entities
    • 593 Предварительные условия для запуска примеров
    • 593 Класс ObjectContext
      • 594 Конструктор
      • 595 DatabaseExists()
      • 596 DeleteDatabase()
      • 596 CreateDatabase()
      • 596 SaveChanges()
      • 597 Refresh()
      • 598 AddObject()
      • 599 CreateObject()
      • 600 DeleteObject()
    • 600 EntityObject
      • 600 Конструктор
      • 601 Фабричный метод
      • 603 Примитивные свойства
      • 604 Навигационные свойства
    • 606 EntityReference
      • 606 Load()
      • 607 Value
    • 607 EntityCollection
      • 607 Add()
      • 609 Remove()
      • 610 Clear()
      • 610 Contains()
      • 611 Load()
      • 611 Count
    • 612 Резюме
  • 613 Часть VII. Parallel LINQ
  • 614 Глава 22. Введение в Parallel LINQ
    • 614 Введение
      • 617 Parallel LINQ предназначен для объектов
    • 618 Использование API-интерфейса Parallel LINQ
    • 618 Резюме
  • 619 Глава 23. Использование Parallel LINQ
    • 619 Создание запроса Parallel LINQ
    • 621 Предохранение порядка результатов
    • 624 Управление параллелизмом
      • 624 Принудительное параллельное выполнение
      • 625 Ограничение степени параллелизма
    • 625 Обработка исключений
    • 628 Запросы без результатов
    • 630 Создание диапазонов и повторов
    • 630 Резюме
  • 631 Глава 24. Операции Parallel LINQ
    • 631 Операции создания ParallelQuery
      • 631 AsParallel
      • 634 Range
      • 635 Repeat
      • 636 Empty
    • 636 Операции управления выполнением
      • 636 AsOrdered
      • 638 AsUnordered
      • 639 AsSequential
      • 640 AsEnumerable
      • 641 WithDegreeOfParallelism
      • 641 Прототипы
      • 641 WithExecutionMode
      • 642 WithMergeOptions
    • 644 Операции преобразования
      • 644 Cast
      • 645 OfType
    • 646 Операция ForAll
      • 646 Прототипы
      • 646 Примеры
    • 646 Резюме
  • 647 Предметный указатель

Инструкция как скачать книгу Адам Фримен, Джозеф Раттц-мл.: LINQ. Язык интегрированных запросов в C# 2010 для профессионалов в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
LINQ. Язык интегрированных запросов в C# 2010 для профессионалов
Рейтинг книги:
5 голосов
1565

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: