gpt4 book ai didi

c#-4.0 - Fluent nHibernate : No row with the given identifier exists. 2个用户删除某些项目时发生错误

转载 作者:行者123 更新时间:2023-12-02 02:26:56 24 4
gpt4 key购买 nike

Fluent nHibernate:不存在具有给定标识符的行。

我有一个对象,它有一个 Items 集合。我的问题是:当 2 个用户看到该对象并且一个用户删除某些项目时发生错误。其他用户应该看到对象已更新,没有删除的项目,而不是异常。

我试过:

session.Evict(p);
// the following line will throw an exception
session.Refresh(p);

No row with the given identifier exists[Sistema.ERPxx.Pedidos.ItemPedido#74435]

在映射中指定:

this.HasMany<ItemPedido>(v => v.Items).KeyColumn("numero_pedido").Cascade.All().OrderBy("descricao_produto").LazyLoad().NotFound.Ignore();

我遇到了这个问题,不知道如何刷新项目以获取其他用户所做的更新。

如何在不出现异常的情况下使用 Items 刷新对象?

最佳答案

您收到此异常实际上是一件好事。这就是所谓的乐观并发(google 一下;here 是一个足够简单的解释)。
您需要做的是捕获该异常,并将其转换为某种用户可理解的格式。例如:

catch (WhateverConcurrencyException ex)
{
throw new UserReadableException("The object with id "+id+" no longer exists");
}

关于c#-4.0 - Fluent nHibernate : No row with the given identifier exists. 2个用户删除某些项目时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5580916/

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