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