gpt4 book ai didi

nhibernate - 异常 "instance was not in a valid state"

转载 作者:行者123 更新时间:2023-12-05 06:46:57 25 4
gpt4 key购买 nike

这是一个示例代码。我在哪里做一些测试

  1. 获取实体
  2. 删除实体
  3. 回滚事务。
  4. 改变实体
  5. 刷新实体
  6. 获取实体

我在执行以下代码时遇到此异常:实例未处于有效状态

        ISession session = sessionFactory.OpenSession();
var list1 = session.Query<Asset>().ToList();

ITransaction transaction = session.BeginTransaction();

session.Delete(list1[0]);

transaction.Rollback();
transaction.Dispose();

list1[0].Name = "Test";
session.Refresh(list1[0]);
var list2 = session.Query<Asset>().ToList();

如果我调用刷新两次。它没有给出任何问题。它工作正常。

        try
{
session.Refresh(list1[0]);
}
catch (Exception)
{
session.Refresh(list1[0]);
}

能否请您谈谈您的看法和建议,这里有什么问题。

最佳答案

我认为问题在于您对回滚和异常的处理。在回滚或异常之后,对象的内存状态可能不再与其持久状态一致,因此如果不进行任何清理, session 将不再安全使用。建议在异常发生后,您应该回滚任何事务,然后丢弃 session ,或使用 session.Clear() 清除它。回滚也是如此,你应该要么开始一个新的 session ,要么清除它并丢弃所有现有的对象,否则不一致会导致很多麻烦。

关于nhibernate - 异常 "instance was not in a valid state",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121553/

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