Я пытаюсь удалить запись без предварительной загрузки из БД. Я пробовал множество различных подходов (все, что мне удалось найти в Интернете), но ни один из них, похоже, не работает:
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.
Например, этот код не работает:
using (var dbContext = _dbContextCreator())
{
var report = new DataAccess.AssetReport { Id = id };
dbContext.AssetReports.Attach(report);
dbContext.AssetReports.Remove(report);
await dbContext.SaveChangesAsync();
}
AssetReport
выглядит так.
public class AssetReport
{
[Key]
public long Id { get; set; }
public AssetReportType Type { get; set; }
public AssetReportStatus Status { get; set; }
}
Эта запись существует в БД. Другие запросы не терпят неудачу. Выполнение dbContext.AssetReports.Any
в том же контексте возвращает true
. Удаление только что загруженной записи из БД также работает.