Уровень доступа к данным в .net - PullRequest
2 голосов
/ 11 мая 2009

Я разрабатываю приложение, в котором я хочу уменьшить нагрузку на разработчиков для будущего развития. В этом у меня есть список классов, например, «Пользователь, Учетная запись, Разрешение и т. Д.». Теперь эти классы связаны с таблицей в базе данных, имя которой совпадает с именем таблицы данных. Я хочу, чтобы мой бизнес-уровень был устойчивым, чтобы в будущем, когда бы я ни добавлял еще один столбец в таблицу данных, мне не приходилось перезаписывать команду вставки обновлений и удалений, просто добавив свойство в класс, следует выполнить эту работу.

Есть идеи, как это сделать?

Ответы [ 5 ]

4 голосов
/ 11 мая 2009

То, что вы ищете, это, вероятно, ORM (Object-Relational Mapping). Самые популярные из них для .NET включают Linq-to-SQL (или Entity Framework), NHibernate и ActiveRecord. Использование ORM считается лучшей практикой для достижения поддерживаемого и надежного уровня доступа к данным.

См. список фреймворков здесь .

1 голос
/ 11 мая 2009

Вероятно, вам нужно реализовать решение Object Relational Mapping (ORM). Многие ORM-решения помогают вам поддерживать определения таблиц и сущностей, а также создавать соответствующие запросы для вас.

Популярные ORM для .Net Framework включают NHibernate, ADO Entity Framework и LINQ to SQL. В противном случае вы могли бы рассмотреть отображение вашей модели данных с помощью шаблонов (например, с помощью Codesmith или шаблонов Net Tiers).

Вы можете проверить ответы на этот вопрос для получения дополнительных советов по при выборе решения ORM или просто просмотреть некоторые вопросы, связанные с ORM, помеченные здесь .

0 голосов
/ 11 мая 2009

Довольно интересное прочтение на эту тему - статья Persitence Patterns . Он объясняет наиболее распространенные и основные шаблоны проектирования, используемые для доступа к данным. Также обсуждается, когда конкретный DP может быть более подходящим, чем другой.

0 голосов
/ 11 мая 2009

Выбор решения ORM - один из способов, кроме того, я бы упомянул о предстоящем Осло .

Для более "традиционного" подхода я бы посмотрел Data Abstract .

0 голосов
/ 11 мая 2009

Я думаю, что вы ищете Data Transfer Object . Вот статья , которая объясняет больше о модели DTO.

Кроме того, вот статья , в которой объясняется, как реализовать DTO с набором данных. В вашем случае набор данных будет заменен на ваш собственный слой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...