Postgre The database operation was expected to affect 1 row(s), but actually affected 0 row

在C#开发中使用ABP框架时,遇到提交事务时偶尔出现预期影响1行但实际影响0行的错误。经过排查,问题出在更新方法中新建的实体使用了UpdateAsync,而应使用InsertAsync。UpdateAsync适用于已存在对象的更新,新建对象必须用InsertAsync,否则可能导致数据冲突。
摘要由CSDN通过智能技术生成

语言C#
框架ABP
最近在开发时, 提交事务时,偶现以下错误:

The database operation was expected to affect 1 row(s), but actually affected 0 row(s); data may have been modified or deleted since entities were loaded. 

初始的调查方向是:
跨线程操作
异步操作dbcontext

最后确认下来都不是,最后发现是update 的方法中,新建了一个entity, 使用了仓储的 UpdateAsync,
会导致这个问题;

结论: UpdateAsync时,一定要是已经存在的对象, 新建的对象只能用InsertAsync, 切记使用UpdateAsync

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值