Database operation expected to affect 1 row(s) but actually affected 0 row(s).解决方案

SELECT changes();
引发的异常:“Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException”(位于 Microsoft.EntityFrameworkCore.dll 中)
“Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException”类型的异常在 Microsoft.EntityFrameworkCore.dll 中发生,但未在用户代码中进行处理
Database operation 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.

报了这个错,官方说是并发引起,就我自己,哪来并发?网上的其他答案也没解决我的问题。

最后我偶然解决了这个问题,作为引发此异常的原因之一,记录一下,帮助有需要的人。

我的数据库实体类定义了构造函数,然后没有声明默认构造函数,导致EF创建实体失败,导致了此异常。

解决方案:

在你自定义构造函数后面补充个默认构造函数

    public class KeyValue
    {
        [Key]
        public string Key { get; set; }
        public string Value { get; set; }
        public string Type { get; set; }

        public KeyValue(string key, string value, string type)
        {
            Key = type + ":" + key;
            Value = value;
            Type = type;
        }

        public KeyValue()
        { }
    }

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上海好程序员

给上海好程序员加个鸡腿!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值