.Net核心错误System.InvalidOperationException:实体类型的实例已被跟踪

时间:2020-06-28 21:02:15

标签: c# .net

我正在开发带有angular和.Net Core的Web API。 我真的是.Net的新手,但是当我尝试在此端点更新进程时,出现此错误: “执行请求时发生未处理的异常。System.InvalidOperationException:无法跟踪实体类型'EtapaEmpleado'的实例,因为已经跟踪了另一个具有相同'{'IdEtapa','IdEmpleado'}键值的实例”。

这是我的代码:

let currentIndex = 0;
const intervalId = setInterval(() => {
  if (currentIndex === files.length - 1) clearInterval(intervalId);
  window.location.href = files[currentIndex];
  currentIndex++;
}, 1000);

这是我的IDataRepository:

queryParam <- paste0('StartTime=%3E%3D', startDate,'T00%3A00&
                  EndTime=%3C', endDate,'2020-06- 
17T23%3A59&sort_by=StartTime&order_by=ASC&page_size=5000')

dynamic_url <- paste0(service_url, '?', queryParam)

dynamicReportData <- read_json(dynamic_url)

dynamicReportDataClean <- bind_rows(dynamicReportData$items)

1 个答案:

答案 0 :(得分:0)

致电时

var tiempoAntes=_context.EtapaEmpleado.FirstOrDefault(z=>z.IdEmpleado==preEtapaEmpleado.IdEmpleado && z.IdEtapa==preEtapaEmpleado.IdEtapa);

它将开始跟踪_context中的该实体。我假设_repo2使用相同的_context

如果是这样,那么当您尝试添加具有相同ID的对象_repo2.Update(preEtapaEmpleado);的副本时,上下文会将其识别为重复项并引发错误。

本文可能会帮助

https://docs.microsoft.com/en-us/ef/core/querying/tracking