Хороший, прямолинейный дизайн компонентов баз данных использует отдельный класс для каждой таблицы базы (или логически связанной группы таблиц). Общие методы доступа к данным, такие как вставка, удаление и модификация записей, должны быть помещены в отдельные, не поддерживающие состояние, методы. И, наконец, каждое обращение к базе данных должно использовать выделенную хранимую процедуру. На рис. 8.1 показан тщательно спроектированный многослойный дизайн.
Рис. 8.1. Многослойный дизайн класса базы данных
Следующий пример демонстрирует простой компонент базы данных. Вместо помещения кода работы с базой на Web-страницу, он следует более совершенной практике дизайна, связанной с выделением кода в отдельный класс, который может быть использован на многих страницах. Этот класс при желании может быть затем скомпилирован как часть отдельного компонента. Вдобавок строка соединения извлекается из раздела <connectionStrings> файла web.config, а не кодируется жестко.
Компонент данных в действительности состоит из двух классов — класс пакета данных, который является оболочкой для отдельной информационной записи, и служебный класс базы данных, который выполняет операции с данными базы в коде ADO.NET.
Для облегчения перемещения информации в базу данных Northwind и обратно имеет смысл создать класс EmployeeData, который представит все поля в виде открытых свойств. Вот его полный код:
public class EmployeeData
{
private int employeeID;
public int EmployeeID
{
get {return employeeID;}
set {employeeID = value;)
}
private string firstName;
public string FirstName
{
get {return firstName;}
set (firstName = value;}
}
предыдущая следующая страница оглавление
339