Как вы справляетесь с параллелизмом в NHibernate? - PullRequest
17 голосов
/ 23 сентября 2008

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

Ответы [ 3 ]

22 голосов
/ 23 сентября 2008

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

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

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

16 голосов
/ 23 сентября 2008

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

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

2 голосов
/ 15 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...