Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
Шрифт:
Интервал:
Закладка:
Выпуск метода SayHello()
Использование динамически сгенерированной сборки
Резюме
Часть VI
Глава 20
Исследование пространства имен System.IO
Классы Directory(Directorylnfо) и File(FileInfo)
Абстрактный базовый класс FileSystemInfo
Работа с типом DirectoryInfо
Перечисление файлов с помощью типа DirectoryInfо
Создание подкаталогов с помощью типа DirectoryInfo
Работа с типом Directory
Работа с типом DriveInfo
Работа с типом FileInfo
Метод FileInfo.Create()
Метод FileInfо.Open()
Методы FileInfо.OpenRead() и FileInfо.OpenWrite()
Метод FileInfо.OpenText()
Методы FileInfo.CreateText() и FileInfo.AppendText()
Работа с типом File
Дополнительные члены типа File
Абстрактный класс Stream
Работа с типом FileStream
Работа с типами StreamWriter и StreamReader
Запись в текстовый файл
Чтение из текстового файла
Прямое создание объектов типа StreamWriter/StreamReader
Работа с типами StringWriter и StringReader
Работа с типами BinaryWriter и BinaryReader
Программное слежение за файлами
Понятие сериализации объектов
Роль графов объектов
Создание примеров типов и написание операторов верхнего уровня
Сериализация и десериализация с помощью XmlSerializer
Управление генерацией данных XML
Сериализация объектов с использованием XmlSerializer
Сериализация коллекций объектов
Десериализация объектов и коллекций объектов
Сериализация и десериализация с помощью System.Text.Json
Управление генерацией данных JSON
Сериализация объектов с использованием JsonSerializer
Включение полей
Понятный для человека вывод данных JSON
Именование элементов JSON в стиле Pascal или в "верблюжьем" стиле
Обработка чисел с помощью JsonSerializer
Потенциальные проблемы, связанные с производительностью, при использовании JsonSerializerOption
Стандартные настройки свойств JsonSerializer для веб-приложений
Сериализация коллекций объектов
Десериализация объектов и коллекций объектов
Резюме
Глава 21
Сравнение ADO.NET и ADO
Поставщики данных ADO.NET
Поставщики данных ADO.NET
Типы из пространства имен System.Data
Роль интерфейса IDbConnection
Роль интерфейса IDbTransaction
Роль интерфейса IDbCommand
Роль интерфейсов IDbDataParameter и IDataParameter
Роль интерфейсов IDbDataAdapter и IDataAdapter
Роль интерфейсов IDataReader и IDataRecord
Абстрагирование поставщиков данных с использованием интерфейсов
Установка SQL Server и Azure Data Studio
Установка SQL Server
Установка SQL Server в контейнер Docker
Получение образа и запуск SQL Server 2019
Установка SQL Server 2019
Установка IDE-среды SQL Server
Подключение к SQL Server
Подключение к SQL Server в контейнере Docker
Подключение к SQL Server LocalDb
Подключение к любому другому экземпляру SQL Server
Восстановление базы данных AutoLot из резервной копии
Копирование файла резервной копии в имеющийся контейнер
Восстановление базы данных с помощью SSMS
Восстановление базы данных в экземпляр SQL Server (Docker)
Восстановление базы данных в экземпляр SQL Server (Windows)
Восстановление базы данных с помощью Azure Data Studio
Создание базы данных AutoLot
Создание базы данных
Создание таблиц
Создание таблицы Inventory
Создание таблицы Makes
Создание таблицы Customers
Создание таблицы Orders
Создание таблицы CreditRisks
Создание отношений между таблицами
Создание отношения между таблицами Inventory и Makes
Создание отношения между таблицами Inventory и Orders
Создание отношения между таблицами Orders и Customers
Создание отношения между таблицами Customers и CreditRisks
Создание хранимой процедуры GetPetName
Добавление тестовых записей
Записи таблицы Makes
Записи таблицы Inventory
Добавление тестовых записей в таблицу Customers
Добавление тестовых записей в таблицу Orders
Добавление тестовых записей в таблицу CreditRisks
Модель фабрики поставщиков данных ADO.NET
Полный пример фабрики поставщиков данных
Потенциальный недостаток модели фабрики поставщиков данных
Погружение в детали объектов подключений, команд и чтения данных
Работа с объектами подключений
Работа с объектами ConnectionStringBuilder
Работа с объектами команд
Работа с объектами чтения данных
Получение множества результирующих наборов с использованием объекта чтения данных
Работа с запросами создания обновления и удаления
Создание классов Car и CarViewModel
Добавление класса InventoryDal
Добавление конструкторов
Открытие и закрытие подключения
Добавление реализации IDisposable
Добавление методов выборки
Вставка новой записи об автомобиле
Создание строго типизированного метода InsertCar()
Добавление логики удаления
Добавление логики обновления
Работа с параметризированным и объектами команд
Указание параметров с использованием типа DbParameter
Обновление метода GetCar()
Обновление метода DeleteCar()
Обновление метода UpdateCarPetName()
Обновление метода InsertAuto()
Выполнение хранимой процедуры
Создание консольного клиентского приложения
Понятие транзакций базы данных
Основные члены объекта транзакции ADO.NET
Добавление метода транзакции в inventoryDal
Тестирование транзакции базы данных
Выполнение массового копирования с помощью ADO.NET
Исследование класса SqlBulkCopy
Создание специального класса чтения данных
Выполнение массового копирования
Тестирование массового копирования
Резюме
Часть VII
Глава 22
Инструменты объектно-реляционного отображения
Роль Entity Framework Core
Строительные блоки Entity Framework Core
Класс DbContext
Создание класса, производного от DbContext
Конфигурирование экземпляра DbContext
Фабрика DbContext этапа проектирования
Метод OnModelCreating()
Сохранение изменений
Поддержка транзакций и точек сохранения
Транзакции и стратегии выполнения
События SavingChanges/SavedChanges
Класс DbSet<T>
Типы запросов
Гибкое сопоставление с запросом или таблицей
Экземпляр ChangeTracker
События ChangeTracker
Сброс состояния DbContext
Сущности
Сопоставление свойств со столбцами
Сопоставление классов