Кеширование объектов и прочего в NHibernate - PullRequest
0 голосов
/ 08 июля 2010

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

В любом случае, есть хотя бы одна проблема, с которой я до сих пор сталкивался.В одном сценарии я загружаю объект из NHibernate и помещаю его в кеш в одном запросе.В следующем запросе я получаю этот объект из кэша, изменяю его и возвращаюсь в NHibernate, чтобы сохранить его.Очевидно, что NHibernate pukes, в данном конкретном случае с исключением "Illegal attempt to associate a collection with two open sessions".

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

1 Ответ

2 голосов
/ 08 июля 2010

NHibernate имеет кеширование по причине .. используйте его :)

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

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