Установка теневого свойства в списке сущностей - PullRequest
0 голосов
/ 01 апреля 2020

Как установить свойство shadow, если у вас есть несколько записей одного типа? Я использую приведенный ниже код и получаю ошибку

System.InvalidOperationException: The instance of entity type 'CalendarDay' cannot be tracked because another instance with the key value '{Id: 1}' is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached.
public override int SaveChanges()
        {            
            foreach (var entity in this.ChangeTracker.Entries().Where(e => e.State == 
            EntityState.Added))
            {

                //set shadow property for entity on save
                entity.Property(nameof(Portal.Id)).CurrentValue = 1;
            }
            Audit();
            return base.SaveChanges();
        }

И я создаю записи, подобные этой

if(!context.CalendarDays.Any()){
                for(var i=0;i<2;i++){
                    var cd = new CalendarDay(){ Date = DateTime.Today };
                    cd.Id = DateTime.UtcNow.Millisecond; //lazy, just to be sure the ID is unique(ish) for testing
                    context.CalendarDays.Add(cd);
                }
                context.SaveChanges();
            }
...