Я новичок в свободном nhibernate (а также в спящем режиме). Я создал свой код nhibernate с помощью LLBLGEN. Теперь, из того, что я вижу в учебниках, код, который генерирует LLBLGEN, не очень хорош, поэтому я немного подозрительно и решил изучить результат.
Каждый файл сопоставления имеет следующие строки в своем конструкторе, который вызывается перед отображением свойств в столбцы:
Table("TABLE_NAME");
OptimisticLock.None();
LazyLoad();
Я понимаю метод Table
но как насчет других? Действительно ли они нужны?
Пожалуйста, возьмите мой ответ как вычет из существующей литературы в Интернете, так как я не эксперт по NHibernate.
LazyLoad();
предложение. Независимо от того, как вы определили стандартную ленивую стратегию загрузки в своем проекте, LazyLoad();
предложение принуждает NHibernate выполнять ленивую загрузку при выполнении сопоставлений.
OptimisticLock.None();
предложение.От связанного с Айенде сообщения до согласования отображения NHibernate:
В основном это означает, что мы возвращаемся к семантике транзакций, которую мы используем в базе данных. База данных может выкинуть нас, но, кроме этого, нам не очень-то очень важно о вещах.
И обзор документации по Hibernate
Если вы включите динамическое обновление, у вас будет выбор оптимистических стратегий блокировки:
- версия: проверьте столбцы версии/времени
- все: проверить все столбцы
- грязный: проверьте измененные столбцы, разрешив некоторые параллельные обновления
- none: не используйте оптимистичную блокировку
Я предполагаю, что использование OptimisticLock.None();
предложение в коде сообщает NHibernate, что не устанавливает никакой стратегии блокировки и не отменяет поведение блокировки для базовой базы данных.