Какова лучшая функция платформы ORM, которую Вы используете [закрытый]

12
задан Jon 3 July 2010 в 20:21
поделиться

6 ответов

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

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

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

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

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

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

4
ответ дан 2 December 2019 в 19:30
поделиться

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

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

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

По этой теме есть множество других вопросов и ответов:

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

2
ответ дан 2 December 2019 в 19:30
поделиться

Мне интересно, какую лучшую функцию (функции) фреймворка orm вы используете и какие функции вы используете чаще всего?

Я написал свой собственный ORM. Особенности включают:

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

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

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

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

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

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

4
ответ дан 2 December 2019 в 19:30
поделиться

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

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

3
ответ дан 2 December 2019 в 19:30
поделиться

Я написал Object Data Blocks, чтобы предложить следующие выдающиеся возможности

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

Лучше всего это можно описать как ORM в стиле объектной персистенции.

3
ответ дан 2 December 2019 в 19:30
поделиться

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

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

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

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

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

2
ответ дан 2 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: