СРС / Автономный режим / 7-Приложение с понятными именами полей
.docx
7. Приложение Book.v7 с понятными именами полей данных
Имена полей объектов базы данных часто не могут нормально восприниматься пользователями (английский язык, непонятные сокращения). В ADO.NET на основе объектов DataTableMapping и DataColumnMapping можно реализовать отображение, устанавливающее взаимно-однозначную трансляцию между именами столбцов результирующего набора и именами объектов DataColumn.
При заполнении DataSet адаптер данных просматривает свое свойство TableMappings, чтобы определить, указал ли разработчик правила отображения. По умолчанию свойство TableMappings пусто, так что имена столбцов, используемые в базе данных, применяются и в соответствующих объектах DataTable.
Для использования отображений необходимо создать объект DataTableMapping. Объект позволяет выполнять отображение между двумя именами одной таблицы, а кроме того, содержит свойство ColumnMappings – коллекцию объектов DataColumnMapping, выполняющих отображения имен различных столбцов таблицы. После создания объекта и добавления в него нужных отображений столбцов сам объект можно занести в свойство TableMappings объекта DataAdapter.
У класса DataTableMapping есть конструктор, принимающий две строки. Первая строка задает имя исходной таблицы и чувствительна к регистру. Это имя должно совпадать с именем таблицы, используемой при заполнении или обновлении, которое выполняет объект DataAdapter. Если не указать имя исходной таблицы, то объект DataAdapter назначает стандартное имя "Table". Второй параметр содержит имя объекта DataTable в DataSet. Объект DataTableMapping содержит коллекцию ColumnMappings, в нее должны входить все столбцы, которые требуется отобразить из базы данных в DataSet.
После создания объекта DataTableMapping в нем надо заполнить коллекцию ColumnMappings, которая должна содержать объекты DataColumnMapping. Объект DataColumnMapping содержит отношение между столбцом в базе данных и столбцом в DataSet. Для его создания нужно указать две строки: первая строка задает имя столбца в источнике данных, а вторая – имя столбца, видимое в DataSet:
mapOrder.ColumnMappings.Add(new DataColumnMapping("order_ID", "Код заказа"));
Резюме
Приложение идентично приложению Book.v6, но столбцы результирующего набора имеют понятные пользователю имена.
Достоинства приложения:
не используется постоянное соединение с базой данных;
имена полей объектов базы данных понятны пользователю.
Недостатки приложения:
из базы извлекаются нетипизированные данные (типа Object);
приложение не позволяет модифицировать данные.