Как вы относитесь к параллелизму в NHibernate?

17

Как вы поддерживаете оптимистичный / пессимистический параллелизм с помощью NHibernate?

    
задан Kevin Pang 23.09.2008 в 03:00
источник

3 ответа

16

NHibernate по умолчанию поддерживает оптимистичный параллелизм. С другой стороны, пессимистический параллелизм может быть выполнен с помощью метода ISession.Lock() .

Эти вопросы подробно обсуждаются в этом документе .

    
ответ дан Jon Limjap 23.09.2008 в 03:03
источник
22

NHibernate поддерживает 2 типа оптимистического параллелизма.

Вы можете либо проверить грязные поля, используя атрибут «optimistic-lock = dirty» в элементе «class» в ваших файлах сопоставления, либо вы можете использовать «optimistic-lock = version» (который также является значением по умолчанию). Если вы используете версию, вам необходимо предоставить элемент «version» в вашем файле сопоставления, который будет отображаться в поле в вашей базе данных.

Версия может иметь тип Int64, Int32, Int16, Ticks, Timestamp или TimeSpan и автоматически увеличивается при сохранении. Подробнее читайте в главе 5 в документации по NHibernate.

    
ответ дан Ryan Rinaldi 23.09.2008 в 03:08
источник
2

Вы также можете «просто» вручную сравнить номера версий (при условии, что вы добавили свойство Version в свою сущность).

Ясно Оптимистичный - единственный разумный вариант. Иногда, конечно, нам приходится иметь дело с сумасшедшими сценариями, однако ...

    
ответ дан penderi 15.10.2008 в 10:28
источник