Почему сущность все еще проверяется, когда она ушла?
- Добавить новый объект в
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; }
}
Ответы
Ответ 1
Он отслеживает сбор удаленных объектов, даже если он не сохраняется в вашем хранилище (он находится в свойстве ObjectsRemovedFromCollection).
У этой ссылки есть больше информации о том, что происходит под капотом: MSDN
Я не нахожу подробностей о том, что явно вызывает проверку, но вы можете попробовать вызвать AcceptChanges() или ObjectsAddedToCollectionProperties.Clear() и ObjectsRemovedFromCollectionProperties.Clear() перед вызовом context.SubmitChanges()
Ответ 2
попробуйте
context.Entry(entity).State = EntityState.Detached
затем вызовите
context.SaveChanges()
;)