Какая лучшая особенность используемой вами структуры ORM
Мне интересно, какая лучшая функция рамки orm вы используете и какие функции вы используете сами?
В чем причина выбора используемой структуры?
Я просто пытаюсь их сравнить и задаюсь вопросом, выгодны ли какие-либо преимущества перед другими. (все это очень хорошо, но вы не можете победить из первых рук!)
В частности, я ищу .NET Framework, но все еще интересуюсь ORM/функциями в других языках.
Спасибо заранее!
Ответы
Ответ 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