将瞬态实体放在缓存中而不保留它

时间:2011-05-12 15:41:26

标签: c# nhibernate

我有一个负责加载实体的方法,就像DAO一样。如果找不到该实体,则该方法应该创建一个新实体并返回该实体。但是,新实体不应该被保留。

问题是可以再次调用该方法以在同一会话范围内获取相同的实体,然后它应该返回先前创建的(但不是持久的)实体。是否可以将实体放在NHibernate的缓存中以便它可以找到它(没有持久化),或者我是否需要实现自己的缓存机制来处理新实体?

1 个答案:

答案 0 :(得分:2)

虽然可以将一个实体添加到状态为Gone的PersistenceContext中。这是否会实现您可能想要的目标是可疑的,更不用说滚动您自己的临时对象缓存比尝试调用此API要简单得多。

public EntityEntry AddEntry(object entity, Status status, object[] loadedState, 
                            object rowId, object id, object version, 
                            LockMode lockMode, bool existsInDatabase, 
                            IEntityPersister persister, 
                            bool disableVersionIncrement, 
                            bool lazyPropertiesAreUnfetched)