将暂时性实体放入缓存中而不保留它
本文关键字:保留 缓存 暂时性 实体 | 更新日期: 2023-09-27 17:56:09
我有一个负责加载实体的方法,有点像DAO。如果未找到实体,则该方法应创建一个新实体并返回该实体。但是,新实体目前不应保留。
问题在于,可能会再次调用该方法以获取同一会话范围内的同一实体,然后它应该返回先前创建(但未持久)的实体。是否可以将实体放在 NHibernate 的缓存中,以便它可以找到它(无需保留它),或者我是否需要实现自己的缓存机制来处理新实体?
虽然可以将状态为"消失"的实体添加到 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)