我有一个负责某些业务逻辑验证的服务对象。在向存储库发布更新之前,它所做的是检查其工作的实体是否符合某些业务规则。
必须检查的规则之一是,与数据库中的实体相比,实体的Status属性是否没有改变。因为我使用共享相同ISession的存储库,所以当我尝试从数据库中获取实体时,为了获取对象进行比较:
if (fromDbEntity.Status != entity.Status) throw new Exception("Cannot change status...");
我总是会从一级缓存中的DbEntity获取 - 所以我在同一个对象上工作。
有没有办法强制 NHibernate/Repository 从数据库中获取实体,即使它已经在会话范围内?