关于Net6 EF SaveChanges不生效的问题的解决方案

近期遇见一个非常非常狗日的问题,由于某个操作,导致整个项目,所有关于数据库添加,修改统统失效,只能查询。

断点调试也不行,未捕捉到任何错误,但就是修改不了数据库;

打开服务器数据库跟踪工具,发现服务器SqlServer数据库在本地执行添加或者修改时根本没收到任何操作指令,但是查询时能收到;

这不就神奇了么?EF不报错,执行一切正常,但是不向数据库发送指令,百度了一圈,也找到什么问题,官方文档也没相关说明,这是哪个大聪明开发的EF,这种Bug都没考虑到?你不愿意向数据库发送指令,最起码提醒一下啊!

 

一个存储库使用不同上下文?再结合我近期对项目的修改,涉及了在同一个页面对多个表的数据进行修改,经过我一通思考与推理,我假定:这狗日的EF一个Context只能对一个表进行修改,如果此时重复利用Context,再对其他表进行修改,就会引发某种异常,这个异常可能在编译的时候就已经触发了,也就是在程序编译的时候,如果检测到一个Context对多个表进行修改,就会使生成程序中,所有关于添加/修改的功能全部失效,只能查询。

然后我更改了我的代码,每涉及到一个表,就新创建一个Context,然后问题就解决了,而且之前无效的全部有效了。

我真是服了EF这个老六!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值