Castle Project Active Record или Свободный NHibernate - PullRequest
3 голосов
/ 15 февраля 2010

Мы изучали использование ORM на работе.

В настоящее время мы пытаемся поднять плюсы и минусы беглого nhibernate против активной записи замка.

Мы не уверены в гибкости каждого из них, поскольку наша база данных не очень традиционна. В первичных ключах отсутствуют внешние ключи и идентификаторы (немного сбивает с толку, но следующее значение хранится в отдельной таблице). Также есть несколько ситуаций, когда у нас есть имена таблиц суффиксами по годам. Затем мы выбираем один в зависимости от года. Это может быть немного сложнее.

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

Есть ли у кого-либо какие-либо мнения по поводу одной из этих платформ и / или идеи о том, как решить эти проблемы с помощью либо *

Ps. пожалуйста, не просите нас реорганизовать базу данных. Сейчас это не вариант.

Спасибо.

Ответы [ 3 ]

9 голосов
/ 15 февраля 2010

FluentNHibernate и ActiveRecord довольно разные. Первый из них - просто кодифицированный генератор картографирования, управляемый конвенцией для NHibernate. Последний представляет собой слой абстракции поверх NHibernate вместе с реализацией шаблона Active Record.

Castle Active Record действительно скрывает некоторые аспекты NHibernate от вас, заботясь о некоторых вещах самостоятельно. Таким образом, это может быть менее гибким вариантом, если у вас уже есть сложная существующая база данных.

FluentNHibernate просто генерирует ваши сопоставления, и вы постоянно используете NHibernate для взаимодействия с вашей базой данных.

Так что, хотя я не являюсь экспертом ни в одном из этих случаев, я бы сказал, что для таких извилистых БД вы хотите оставаться как можно ближе к металлу, насколько это возможно, поэтому, возможно, к чистому NHibernate (отображается через FluentNHibernate или hbms, где требуется) или даже IBatis.NET будет лучшим вариантом для вас.

Где сияет ActiveRecord, это когда вы начинаете свой проект с нуля, без устаревшей БД.

0 голосов
/ 28 августа 2015

Обновленный ответ. На всякий случай, если кто-то все еще рассматривает Castle Active Record.

Замок ActiveRecord устарел. Это означает, что вы не можете использовать его с версией NHibernate> = 3.3.

0 голосов
/ 04 мая 2012

Вот генератор кода первого подхода к базе данных, который поддерживает как Castle ActiveRecord, так и EntityFramework CodeFirst. Попробуйте. http://salardbcodegenerator.codeplex.com/

...