#c# #entity-framework #entity-framework-4 #self-tracking-entities
#c# #entity-framework #entity-framework-4 #самоотслеживающиеся объекты
Вопрос:
- Добавьте новый объект в
TrackableCollection
(context.Entities.Add(entity)
) (EntityState = New) - Без сохранения удалите добавленный объект из
TrackableCollection
(context.Entities.Remove(entity)
) (EntityState = Неизмененный) - Сохранить. (
context.SubmitChanges()
)
Я все еще получаю ошибки проверки из аннотаций данных, связанных с объектом, почему?
public class Entity
{
[Required]
public string Name { get; set; }
}
Ответ №1:
Он отслеживает коллекцию удаленных объектов, даже если она не была сохранена в вашем хранилище (она находится в свойстве ObjectsRemovedFromCollection).
По этой ссылке содержится дополнительная информация о том, что происходит под капотом: MSDN
Я не нахожу подробностей о том, что явно запускает проверку, но вы можете попробовать вызвать AcceptChanges() или ObjectsAddedToCollectionProperties.Clear() и ObjectsRemovedFromCollectionProperties.Очистить () перед вызовом context.SubmitChanges()
Комментарии:
1. Хм, кажется, что эти участники для меня не существуют.
Ответ №2:
попробуйте
context.Entry(entity).State = EntityState.Detached
затем вызовите
context.SaveChanges()
😉