Обработка почти статических данных с помощью NHibernate? - PullRequest
0 голосов
/ 27 июля 2011

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

Поскольку эти данные изменяются нечасто и могут быть довольно большими - и предположительно «неизменяемыми» для большей части приложения, кажется глупым загружать их в сеанс NHibernate для проверки на сброс и т. Д.

ВверхуЯ могу подумать о нескольких возможных решениях:

  1. Использование Evict после загрузки данных в обычные части приложения, чтобы исключить их из отслеживания / очистки изменений.Использование быстрого доступа к кэшу 2-го уровня.

  2. Создание собственного кэша для обычной части приложения и сохранение там отдельных сущностей, обновление кеша при записи из части администратора.

  3. Использование второго сеанса с FlushMode.Never для загрузки данных в обычную часть приложения.

  4. Использование Criterias / QueryOver в NH 3.0извлекать данные только для чтения.

  5. ???

Это не похоже на довольно распространенную проблему для большинства приложений,какой лучший способ справиться с этим?

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Я бы использовал двунаправленный подход.Прежде всего вы можете использовать кэш 2-го уровня, чтобы все сеансы имели доступ к одному и тому же экземпляру данных.Во-вторых, я бы использовал IStatelessSession, чтобы получить его.Это не позволит сеансу фактически отслеживать объект.

1 голос
/ 27 июля 2011

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

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