gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:02:22 25 4
gpt4 key购买 nike

我正在学习一些 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();
}

关于c# - 回滚由 Fluent NHibernate 中的 PersistenceSpecifications 创建的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/632308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com