Проблемы, возникшие при работе с nhibernate

#nhibernate

#nhibernate

Вопрос:

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

Комментарии:

1. Это слишком широко. Я предлагаю вам спросить о конкретных проблемах.

Ответ №1:

На самом деле у меня нет контрольного списка, но одна из вещей, которая привлекла нас при первом использовании NHibernate, заключалась в том факте, что мы не тестировали его при реальной «нагрузке» в нашей среде разработки.

Когда мы приступили к производству, мы получали неожиданные тайм-ауты. Оказалось, что наши запросы ICriteria были очень неэффективны, и нам пришлось соответствующим образом их настроить.

Еще одной вещью, которая изначально привлекла нас, были зависимости NHibernates от dll. Это зависит от Log4net, Iesi.Коллекции и еще несколько — убедитесь, что ваша стратегия развертывания учитывает это.

Ответ №2:

Это старая проблема, но вот несколько из них..

Сопоставления — если у вас есть устаревшая база данных с другими, чем простые сопоставления, используйте NHibernate Profiler, чтобы проверить, что на самом деле запрашивается. Иногда довольно невинная загрузка объекта может привести к множественным объединениям.

Параллелизм — обязательно ознакомьтесь с тем, как обрабатываются транзакции. Единица работы (ISession) и то, как она работает, важны для предотвращения странных ошибок, при которых считываются противоречивые данные.

Параллелизм — убедитесь, что вы понимаете модели параллелизма NHibernates. Это может серьезно повлиять на ваше приложение и вызвать у вас исключения StaleObjectExceptions при одновременной записи. Посмотрите это для начала: Параллелизм NHibernate