Свободный оптимистичный замок NHibernate и ленивая нагрузка

1

Я новичок в свободном nhibernate (а также в спящем режиме). Я создал свой код nhibernate с помощью LLBLGEN. Теперь, из того, что я вижу в учебниках, код, который генерирует LLBLGEN, не очень хорош, поэтому я немного подозрительно и решил изучить результат.

Каждый файл сопоставления имеет следующие строки в своем конструкторе, который вызывается перед отображением свойств в столбцы:

Table("TABLE_NAME");
OptimisticLock.None();
LazyLoad();

Я понимаю метод Table но как насчет других? Действительно ли они нужны?

Теги:
fluent-nhibernate

1 ответ

1
Лучший ответ

Пожалуйста, возьмите мой ответ как вычет из существующей литературы в Интернете, так как я не эксперт по NHibernate.

Во-первых, LazyLoad(); предложение.

Независимо от того, как вы определили стандартную ленивую стратегию загрузки в своем проекте, LazyLoad(); предложение принуждает NHibernate выполнять ленивую загрузку при выполнении сопоставлений.

Во-вторых, OptimisticLock.None(); предложение.

От связанного с Айенде сообщения до согласования отображения NHibernate:

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

И обзор документации по Hibernate

Если вы включите динамическое обновление, у вас будет выбор оптимистических стратегий блокировки:

  • версия: проверьте столбцы версии/времени
  • все: проверить все столбцы
  • грязный: проверьте измененные столбцы, разрешив некоторые параллельные обновления
  • none: не используйте оптимистичную блокировку

Я предполагаю, что использование OptimisticLock.None(); предложение в коде сообщает NHibernate, что не устанавливает никакой стратегии блокировки и не отменяет поведение блокировки для базовой базы данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню