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