Мы выполняем это успешно, хотя некоторое расхождение в данных всегда является проблемой.Однако, поскольку кэш 2-го уровня настраивается для каждого сайта, его можно отключить, а также отключить для определенных областей кеша в вашем менеджере.
Кэш 2-го уровня будет использоваться только для чтения, поскольку явные обновления будутбыть сброшенным и сохраненным непосредственно.
Если вы обеспокоены тем, что контент на сайте будет "старым" после изменения, потребуется какой-то триггер, чтобы дать сайту команду удалить кеш.Затем NHibernate изгонит весь кэш 2-го уровня для определенного типа сущности, если я правильно его запомнил.
Я думаю, что ваша проблема с параллелизмом будет минимальной, если ваш сайт и ваш администратор обновят разные сущности.Например, в интернет-магазине:
Site will create orders, modify customers etc but only read products, prices and categories
Admin will modify orders, products, prices and categories but only read customers
Однако вы можете указать NHibernate обновлять измененные поля / свойства ваших объектов только для тех объектов, которые вас беспокоят из-за проблем параллелизма с помощью dynamic-update = "true" в вашем отображении.,Это не полностью решит вашу проблему, но минимизирует проблемы параллелизма.