Подойдет ли ORM моей цели? - PullRequest
0 голосов
/ 01 ноября 2011

Мы обычно пишем хранимые процедуры в базе данных, которая принимает xml и возвращает набор результатов в виде xml. Я думаю о предоставлении абстракции для вызовов базы данных, как показано ниже

Пример

    public List<Person> GetAllPeople()
    {
        string requestXml = "<Request><Type>GetAllPeople</Type></Request>";
        //execute a procedure with above xml as input
        //load the response xml into dataset
        //foreach record instantiate Person & add to list
        return List<Person>();
    }

, так что команда может работать со строго типизированными объектами, а также слабо связанными XML-строками. Я думаю, что это работа, которую ORM делает правильно? Или я должен кодировать свой собственный слой доступа к данным, чтобы вернуть объекты, а не набор данных и таблицы данных. Так что вопрос

  • Подойдет ли ORM для такого типа доступа к данным?

  • Каким будет правильный путь для абстрагирования вызовов базы данных?

Характеристики

SQL Server 2005, .NET 2.0, ASP.NET 2.0, C # 2.0

1 Ответ

1 голос
/ 01 ноября 2011

Определенно разработайте слой доступа к данным.Этот слой будет состоять из классов DAO, каждый класс для доступа к определенным типам данных (или объектам, если это система OO).

Теперь вам решать, как вы хотите написать этот слой.У вас есть несколько вариантов:

  1. ORM.
  2. Простой старый JDBC
  3. метод хранимой процедуры, который вы упомянули.

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

Теперь я немного скептически отношусь к хранимым процедурам, в основном потому, что могу выполнять любые вещи - как извлечение данных, так и выполнение логики.Я избегаю хранимых процедур, чтобы убедиться, что вся бизнес-логика в моем коде (будь то tjava, PHP или другой).Для относительно небольших систем я советую использовать простой уровень доступа к данным на основе SQL-запросов.

...