c# – 回滚由Fluent NHibernate中的PersistenceSpecifications创建的记录

前端之家收集整理的这篇文章主要介绍了c# – 回滚由Fluent NHibernate中的PersistenceSpecifications创建的记录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习一些Fluent NHibernate,而且我遇到了半熟的PersistenceSpecification类.

我已经在单元测试中进行了设置以验证我的映射,并且它运行良好.但是,它在完成后会将记录留在数据库中.我尝试在事务中抛出它,所以我可以回滚更改,但是我收到一个错误

System.ObjectDisposedException:无法访问已处置的对象.
对象名称:’AdoTransaction’..

如果没有事务,我必须弄清楚记录的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();
}
原文链接:/csharp/100745.html

猜你在找的C#相关文章