I think you should use NHibernate cache. If the user makes a separate request to receive each object one by one, then you probably should use different ISIBNAME implementations to receive them (for example, because of a session on a web request strategy).
Also, when using the Nhibernate cache, you will not have problems with concurrency problems - it will handle them for you.
source
share