Подтвердить что ты не робот

Почему сущность все еще проверяется, когда она ушла?

  • Добавить новый объект в TrackableCollection (context.Entities.Add(entity)) (EntityState = New)
  • Без сохранения удалите добавленный объект из TrackableCollection (context.Entities.Remove(entity)) (EntityState = Unmodified)
  • Сохранить. (context.SubmitChanges())

Я все еще получаю ошибки проверки из аннотаций данных, связанных с сущностью, почему?

    public class Entity
    {
       [Required]
       public string Name { get; set; }
    }
4b9b3361

Ответ 1

Он отслеживает сбор удаленных объектов, даже если он не сохраняется в вашем хранилище (он находится в свойстве ObjectsRemovedFromCollection).

У этой ссылки есть больше информации о том, что происходит под капотом: MSDN

Я не нахожу подробностей о том, что явно вызывает проверку, но вы можете попробовать вызвать AcceptChanges() или ObjectsAddedToCollectionProperties.Clear() и ObjectsRemovedFromCollectionProperties.Clear() перед вызовом context.SubmitChanges()

Ответ 2

попробуйте

context.Entry(entity).State = EntityState.Detached

затем вызовите

context.SaveChanges()

;)