Home > Software engineering >  Updating Entity impacting unchanged entity after upgrade to EF 3.1
Updating Entity impacting unchanged entity after upgrade to EF 3.1

Time:01-26

I have some code that worked fine in EF Core 2.0. But when I upgrade to EF 3.1, I am getting an error:

The instance of entity type 'ChildEntity' cannot be tracked because another instance with the key value '{Id: 1822}' is already being tracked` error

In the screenshot below, I am updating Id (PK) 585 entity while Id 1822 and 1829 are Unchanged but when I update 1822 I am getting above error.

I have this code before updating:

var changedEntriesCopy = _context.ChangeTracker.Entries()
            .Where(e => e.State == EntityState.Added ||
                        e.State == EntityState.Modified ||
                        e.State == EntityState.Deleted)
            .ToList();

foreach (var entry in changedEntriesCopy)
    entry.State = EntityState.Detached;

enter image description here

CodePudding user response:

I have added one more Unchanged entity as well as mentioned in this comment, How do I clear tracked entities in entity framework,

var changedEntriesCopy = _context.ChangeTracker.Entries()
            .Where(e => e.State == EntityState.Added ||
                        e.State == EntityState.Modified ||
                        e.State == EntityState.Deleted ||
                        e.State == EntityState.Unchanged)
            .ToList();

foreach (var entry in changedEntriesCopy)
    entry.State = EntityState.Detached;
  •  Tags:  
  • Related