admin管理员组

文章数量:1530299

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/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()
        { }
    }

本文标签: 解决方案expectedoperationDatabaseaffected