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

我的错误描述:

ParseMsg方法失败, eqno=采集器序号9, channelno=00018B57,错误: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. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions.

有道翻译:

数据库操作预计影响1行,但实际影响0行; 自实体加载以来,数据可能已被修改或删除。 有关理解和处理乐观并发异常的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=527962

以上错误是我的 IDistributedEventHandler 实现类TahmEventHandler(用来消费mqtt的消息内容)的消息订阅事件 HandleEventAsync中,因为给服务器发送消息很快,执行的消息数据解析业务方法,执行数据操作时报出的错误。

代码如下图所示,根据abp官网示例代码,本来应该继承ITransientDependency 但是用这个生命周期会报错LifetimeScope(原因我还没搞明白) ,所以我用ISingletonDependency来测试,然后用mqttx客户端使劲给服务器发送消息,我的业务系统就抛出了上面的错误。

根据网上查得的资料,是EF处理并发数据时产生的异常,由此可以得出结论,单例模式无法解决并发业务问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值