Если вы когда-нибудь захотите переместить ваши данные по проводам на другие платформы (silverlight, веб-службы, службы wcf и т. Д.), То использование любого типа набора данных уведет вас в угол.
Способчто мы решили это, чтобы иметь классы, список свойств которых точно соответствует базе данных.Чтобы переместить данные в базу данных и из нее, мы используем отражение, чтобы либо сопоставить параметры хранимой процедуры, либо сгенерировать динамические операторы SQL в зависимости от обстоятельств и платформы.
Когда таблица базы данных изменяется, разработчик делаетИзменение также отвечает за обновление структуры классов и наоборот.
Чтобы уменьшить объем необходимого ручного кодирования, мы используем возможности CodeSmith для генерации кода для генерации классов из базы данных и создания основныхреализации наших стандартных хранимых процедур добавления / обновления, которые требуют перечисления полей.
В качестве дополнительного преимущества этот подход устраняет тесную связь между базой данных и структурой бизнес-объектов.Мы можем использовать один и тот же код доступа к данным и классы бизнес-объектов для баз данных SQL Server, Oracle, Sqlite и SqlServerCE.Этот код используется для создания приложений в приложениях Windows, PocketPC, Web, iPad и Android;все мобильные приложения используют локальные базы данных, специфичные для платформы, но с использованием общего кода доступа к данным.
Первоначальная настройка немного сложнее, но в долгосрочной перспективе это принесет значительные дивиденды.