Hi i have an error only when i try to update the record.
This a console application where i try to copy record from the table Department to the the table DepartmentCopy.
Both tables have a Primary Key.
This is my code:
!----------------------------------------------------------------------------!
using System.Linq; using CopyRecord.Contexts; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Internal;
public class RecordCopyService { private readonly DataContext _dbContext;
public RecordCopyService(DataContext dbContext) { _dbContext = dbContext; }
public void CopyRecords() { var sourceRecords = _dbContext.Departments.ToList();
foreach (var sourceRecord in sourceRecords) {
// verify if record exist or not var dbValue = _dbContext.GetDepartmentCopyById(sourceRecord.DepartmentId);
var destinationRecord = new DepartmentCopy
{ DepartmentCopyId = sourceRecord.DepartmentId, Name = sourceRecord.Name, GroupName = sourceRecord.GroupName, ModifiedDate = sourceRecord.ModifiedDate };
if (dbValue == null) { _dbContext.DepartmentCopies.Add(destinationRecord); } else { _dbContext.DepartmentCopies.Update(destinationRecord); <-- error here } _dbContext.SaveChanges(); } } }
Error details:
The instance of entity type 'DepartmentCopy' cannot be tracked because another instance with the same key value for {'DepartmentCopyId'} is already being tracked.
Thanks for any ideas!