我正在开发一个使用 NHibernate 作为 ORM 的项目。
相当多的实体可以作为“只读”加载到会话中,因为它们不应在检索后更新。
我尝试以两种不同的方式做到这一点:
var entity = criteria.UniqueResult<MyType>();
_session.SetReadOnly(entity, true);
或者:
criteria.SetReadOnly(true);
然而,在这两种方式中,我都可以看到该实体存在于PersistenceContext
ISession 中。
这是正常的吗?我希望,由于实体是只读/不可变的,它不应该出现在 PersistenceContext 中。实体类型是复杂类型;它与其他类型有多种关联。