c# – 回滚由Fluent NHibernate中的PersistenceSpecifications创
发布时间:2020-12-15 08:06:40 所属栏目:百科 来源:网络整理
导读:我正在学习一些Fluent NHibernate,而且我遇到了半熟的PersistenceSpecification类. 我已经在单元测试中进行了设置以验证我的映射,并且它运行良好.但是,它在完成后会将记录留在数据库中.我尝试在事务中抛出它,所以我可以回滚更改,但是我收到一个错误: System
我正在学习一些Fluent NHibernate,而且我遇到了半熟的PersistenceSpecification类.
我已经在单元测试中进行了设置以验证我的映射,并且它运行良好.但是,它在完成后会将记录留在数据库中.我尝试在事务中抛出它,所以我可以回滚更改,但是我收到一个错误: System.ObjectDisposedException:无法访问已处置的对象. 如果没有事务,我必须弄清楚记录的ID,检索它们并删除它们,这看起来并不优雅. 有什么想法吗? 编辑: 这是代码片段: 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(); } 解决方法
尝试在事务上设置IsolationLevel.这个片段对我有用:
using (var trans = _session.BeginTransaction(IsolationLevel.ReadUncommitted)) { new PersistenceSpecification<Event>(_session) .CheckProperty(p => p.StartTime,new DateTime(2010,1,1)) .VerifyTheMappings(); trans.Rollback(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |