Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#EF core bulk insert为实体类型';实体';无法跟踪,因为另一个实例具有相同的密钥_C#_Entity Framework Core - Fatal编程技术网

C#EF core bulk insert为实体类型';实体';无法跟踪,因为另一个实例具有相同的密钥

C#EF core bulk insert为实体类型';实体';无法跟踪,因为另一个实例具有相同的密钥,c#,entity-framework-core,C#,Entity Framework Core,我想在EF Core中的单个事务中插入一组记录。我是EF Core的新手。但在循环的第二次迭代中添加实体时,我会遇到以下异常: 无法跟踪实体类型“entity”的实例,因为已在跟踪另一个具有{Id}相同键值的实例。附着现有实体时,请确保仅附着一个具有给定键值的实体实例。考虑使用“dBraveTopStudioBuffel.EnabelSythViDeAtCug”来查看冲突的键值。 我使用了工作单元和存储库模式 这是创建代码块 if (_trmshedulePlan.Count > 0) {

我想在EF Core中的单个事务中插入一组记录。我是EF Core的新手。但在循环的第二次迭代中添加实体时,我会遇到以下异常:

无法跟踪实体类型“entity”的实例,因为已在跟踪另一个具有{Id}相同键值的实例。附着现有实体时,请确保仅附着一个具有给定键值的实体实例。考虑使用“dBraveTopStudioBuffel.EnabelSythViDeAtCug”来查看冲突的键值。

我使用了工作单元和存储库模式

这是创建代码块

if (_trmshedulePlan.Count > 0)
{
      foreach (var item in _trmshedulePlan)
      {
          _trmShedulePlanRepository.Create(item);
      }

      _unitOfWork.Commit();
}
这是我的创建方法:

public void Create(T entity)
{
    this.TRMContext.Entry(entity).State = EntityState.Detached;
    this.TRMContext.Set<T>().Add(entity);
}
public void创建(T实体)
{
this.TRMContext.Entry(entity).State=EntityState.Detached;
this.TRMContext.Set().Add(实体);
}
我对我的上下文创建服务做了以下更改,但仍然出现上述错误

 services.AddDbContext<OnlineFeedbackContext>(options => options.UseSqlServer(Configuration.GetConnectionString("TRMDatabase")).UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking));
 services.AddScoped<OnlineFeedbackContext>();
services.AddDbContext(options=>options.UseSqlServer(Configuration.GetConnectionString(“TRMDatabase”)).UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking));
services.addScope();

这表示您添加的两个项在属性
Id
中具有相同的值,并且该属性是主键。修复源数据中的重复值。此代码
This.TRMContext.Entry(entity).State=EntityState.Detached可能会导致问题。