나는 Fluent NHibernate를 배우고 있으며, 반가운 PersistenceSpecification 클래스를 실행했다.Fluent NHibernate에서 PersistenceSpecifications에 의해 생성 된 레코드를 롤백하기
내 매핑을 확인하기 위해 유닛 테스트에서 설정 했으므로 훌륭하게 작동합니다. 그러나 완료되면 데이터베이스에 레코드가 남습니다. 변경 내용을 롤백 할 수 있도록 트랜잭션에서 throw했지만 오류가 발생합니다.
System.ObjectDisposedException : 폐기 된 개체에 액세스 할 수 없습니다. 개체 이름 : 'AdoTransaction'..
트랜잭션이 없으면 레코드의 ID를 찾아서 검색하고 삭제하면 매우 우아하지 않습니다.
의견이 있으십니까?
편집 : 그것은 다시 물건을 굴하지 않는 그 이유는,
PersistenceSpecification
var factory = GetSessionFactory();
using (var session = factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
new PersistenceSpecification<TimePeriod>(session)
.CheckProperty(x => x.EndDate, DateTime.Today)
.VerifyTheMappings();
transaction.Rollback();
}
또한 VerifyTheMappings 호출을 System.EnterpriseServices.ServiceDomain.Enter() 및 SetAbort()/Leave()와 함께 래핑하는 것이 효과가 있음을 발견했습니다. –