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()
{ }
}
本文解决了一个常见的Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException异常,详细介绍了在自定义构造函数时未声明默认构造函数导致的问题,并提供了修复方法。
1652

被折叠的 条评论
为什么被折叠?



