2010-04-21 3 views
3

Я пытаюсь использовать Fluent NHibernate, и у меня есть пара вопросов. Я считаю, что документации недостаточно.Начало работы с Fluent NHibernate

  1. Я понимаю, что Fluent NHibernate/NHibernate позволяет автоматически генерировать схему базы данных. Обычно ли люди делают это только для баз данных Test/Dev? Или это нормально делать для производственной базы данных? Если это нормально для производства, как вы убедитесь, что вы не сбрасываете производственные данные каждый раз, когда запускаете приложение?

  2. Как только схема базы данных уже создана, и у вас есть производственные данные, когда новые таблицы/столбцы и т. Д. необходимо добавить в базу данных Test и/или Production, позволяют ли люди NHibernate делать это, или это должно быть сделано вручную?

  3. Есть ли ДЕЙСТВИТЕЛЬНО ХОРОШЕЕ документация по Fluent NHibernate? (Пожалуйста, не указывайте мне на wiki, потому что, следуя вместе с созданием кода «Ваш первый проект», я получал ошибки во время выполнения, потому что они забывают сказать вам добавить ссылку. Не круто.)

Спасибо, Энди

ответ

3

Я использую Fluent NHibernate Automapping в течение нескольких месяцев. Я ни в коем случае не специалист, но могу взять удар по вашим вопросам ...

FNH Automapping действительно создает схемы БД из классов POCO, включая списки других объектов (именно по этой причине я выбрал NHibernate в первое место).

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

FNH документации один из моих любимых мозолей - у них нет даже добавила помощь Intellisense в именах методов и т. д. (Но они становятся очень грубыми, когда вы указываете это - спросите меня, как я знаю!) Я сделал пару исправлений в wiki, когда мог, но есть намного больше, что может быть сделано там. Наилучший подход - начать с рабочего примера (т. this one from Nikola Malovic, и поставил вопросы на support form, если (когда!) Вы столкнулись с проблемой. В общем, я нашел сообщество FNH очень полезным и смог справиться со всеми моими трудностями. Они также исправили пару ошибок, которые я нашел.

В целом, использование FNH было огромной победой для моего проекта - очень рекомендуется!

+0

Благодарим вас за советы. На данный момент я отказываюсь от Fluent NHibernate - слишком сложно, и, как я понимаю, EF достиг достойного уровня зрелости. – Andy

+0

Жаль услышать это. Сначала мне тоже было очень неприятно, но теперь я действительно рад, что я застрял с ним. Я несколько раз смотрел на EF несколько месяцев назад, но из уст в уста было плохо, и я не мог определить, было ли это автоматическое или нет. Возможно, релиз VS 2010 определит основные проблемы, о которых люди докладывали. –

1

Я не использую свободный, но я могу помочь с классическим NHibernate.

  1. Да, создание схемы очень рекомендуется для использования в производстве (Schema Export). Когда вы это сделаете, это зависит от вас. Например, вы можете создать базу данных установщиком. Вы не должны отбрасывать существующие базы данных, но это решение вашего приложения.

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

  3. Я не использую Fluent, поэтому я не могу здесь помочь.

Смежные вопросы