Подтвердить что ты не робот

Какая лучшая особенность используемой вами структуры ORM

Мне интересно, какая лучшая функция рамки orm вы используете и какие функции вы используете сами?

В чем причина выбора используемой структуры?

Я просто пытаюсь их сравнить и задаюсь вопросом, выгодны ли какие-либо преимущества перед другими. (все это очень хорошо, но вы не можете победить из первых рук!)

В частности, я ищу .NET Framework, но все еще интересуюсь ORM/функциями в других языках.

Спасибо заранее!

4b9b3361

Ответ 1

Недавно мы рассмотрели процесс решения между Entity Framework и NHibernate. Хотя моя первоначальная склонность заключалась в том, чтобы склониться к NHibernate, учитывая, что опыт Microsoft, фактически придерживающийся технологии, в последние несколько лет был менее звездным (например: Linq To SQL, мертвым в версии 1 или более поздним примером MS решили отказаться от шаблонов клиента ASP.NET Ajax, проверьте это), мы все же решили пойти с Entity Framework.

Мы выбрали его по следующим причинам:

  • Мы являемся магазином Microsoft, поэтому он хорошо интегрируется с существующим набором инструментов.
  • Нам понравился тот факт, что с ним в Visual Studio 2010 были встроены возможности моделирования.
  • Нам понравилась возможность реверсировать схему БД в модель данных сущности (это было действительно здорово).
  • Нам понравился тот факт, что все, что нам было нужно, было довольно доступно из коробки, в отличие от NHibernate, где нам пришлось бы использовать различные инструменты для визуального моделирования, файлы сопоставления могут быть болью, с которыми можно иногда обращаться) и он не очень хорошо интегрировался с Visual Studio.

Было ли или нет работа с Entity Framework правильным выбором, который еще предстоит увидеть. Всегда есть шанс, что Microsoft сможет вытащить еще один "Linq To SQL" и сказать: "Эй, мы выбрасываем Entity Framework, извините, вы должны были пойти с NHibernate". Но мы решили, что, поскольку он находится на 2.0 теперь с VS 2010, есть, по крайней мере, хороший шанс, что это будет вокруг в течение нескольких лет.

Таким образом, хотя нам понравилась NHibernate доказанная репутация намного лучше, чем Entity Framework, мы пошли с Entity Framework по причинам, упомянутым выше.

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

Ответ 2

Мне интересно, какая лучшая функция рамки orm вы используете и какие функции вы используете сами?

Я написал свою собственную ОРМ. Особенности включают:

  • Машиногенерируемый код для каждой таблицы на основе абстрактных определений таблиц

  • Библиотека/фреймворк, который действует на определения таблиц и данные во время выполнения, для реализации таких функций, как:

    • Создание таблиц (или определение таблиц обновлений)
    • CRUD
    • Запущенные хранимые процедуры, которые создают записи истории при изменении содержимого таблицы.
    • Поддержка древовидных данных (с использованием вложенных наборов)
    • Преобразование типов приложений (экземпляров класса С#) в записи данных SQL и наоборот

В чем причина выбора используемой структуры?

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

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

Ответ 3

Я использую empire-db от Apache.

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

Ответ 4

Я написал Блоки данных объектов, чтобы предложить следующие выдающиеся функции

  • Использует классы .net для описания схемы db - нет файлов сопоставления
  • Создает хранимые процедуры для всех db-доступа
  • Оба класса и запросы поддерживают наследование
  • Автоматическое развертывание или sql script генерация для DBA

Его наилучшим образом суммируется как стиль ORM сохранения объектов.

Ответ 5

Я написал свой ORM, потому что он работает с .NET Compact Framework на устройствах, а также с полной .NET Framework без перекомпиляции.

В чем причина того, что вы выбрали рамки, которые вы используете?

  • Для класса не требуется унаследовать от указанного базового типа или реализовать какой-либо интерфейс.

  • Он поддерживает вложенные области транзакций, которые не представлены в .NET Compact Framework.

  • Это позволяет мне создать уровень доступа к данным с помощью модели домена, которая может использоваться как на устройстве, так и на рабочем столе или веб-приложении без кросс-компиляции или дублирования.

Ответ 6

Мне интересно, какая лучшая функция используемой структуры orm, и что вы обнаружите, что используете большинство?

Я бы сказал, что поддержка Linq - это функция ORM убийцы для меня. Прямо сейчас, для записи запросов Linq к базе данных требуется ORM. Linq дает мне статическую проверку времени компиляции в базе данных в моих запросах, что теперь дает мне ошибки компилятора в некоторых сценариях, где код и база данных не синхронизированы. Я, как правило, работаю над базами данных, которые сильно меняются (гибки) и работают с командами разработчиков, где обновления схемы баз данных могут поступать от любого члена команды.

В чем причина того, что вы выбрали рамки, которые вы используете?

Есть много других вопросов и ответов на эту тему:

NHibernate, Entity Framework, активные записи или linq2sql