powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ошибка - Добавление связи с сущностью, находящейся в состоянии Deleted, не допускается
4 сообщений из 4, страница 1 из 1
Ошибка - Добавление связи с сущностью, находящейся в состоянии Deleted, не допускается
    #39702818
Degun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Entity Framework 6.0 Code First
Создаю сущность и добавляю её в контекст:
Код: c#
1.
2.
TestEntity pNewEntity = new TestEntity();
pNewEntity = DbSet.Add(pNewEntity);


Затем удаляю созданную сущность с помощью кода:
Код: c#
1.
2.
3.
if (Context.Entry(pNewEntity).State == System.Data.Entity.EntityState.Detached) DbSet.Attach(pNewEntity);
DbSet.Remove(pNewEntity);
DbContext.SaveChanges();


На последней строчке DbContext.SaveChanges() получаю исключение:
Добавление связи с сущностью, находящейся в состоянии Deleted, не допускается

Если эту сущность без перезагрузки DbContext попытаться удалить ещё раз, то это исключение уже выдаётся на первой строке, т.е. на проверке Context.Entry(pNewEntity).State.
Если же перезагрузить DbContext, то эта сущность удаляется без ошибок.
В чём причина? Как избежать этого?
...
Рейтинг: 0 / 0
Ошибка - Добавление связи с сущностью, находящейся в состоянии Deleted, не допускается
    #39702820
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Degun,
Контекст.Таблица.Add(сущность)
...
Рейтинг: 0 / 0
Ошибка - Добавление связи с сущностью, находящейся в состоянии Deleted, не допускается
    #39703768
Degun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно, я так и делаю.
Исследовал тестовый проект и выяснилось следующее. Ошибка
Adding a relationship with an entity which is in the Deleted state is not allowed.
возникает в том случае, если у сущности TestEntity отношение один-ко многим с другой сущностью LinkedEntity:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class TestEntity
{
  [Key]
  public virtual int ID { get; set; }
  public virtual LinkedEntity LinkedEntity { get; set; }
}

public class LinkedEntity
{
  [Key]
  public virtual int ID { get; set; }
  public virtual ICollection<TestEntity> TestEntitys { get; set; }
}


Когда у сущности LinkedEntity убирается свойство навигационное TestEntitys, то ошибка не возникает. Подозреваю, что если у LinkedEntity в списке TestEntitys присутствует ссылка на удалённый объект сущности TestEntity, то ошибка возникает. Как тогда автоматизировать процесс очистки этого навигационного свойства?
...
Рейтинг: 0 / 0
Ошибка - Добавление связи с сущностью, находящейся в состоянии Deleted, не допускается
    #39703832
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DegunСобственно, я так и делаю.тогда где в первом вопросе обе сущности и связи?
2. Найдите и сделайте пример двух сущностей один ко многим в интернете.
Это букварь.
Потом вопросы если не работает.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ошибка - Добавление связи с сущностью, находящейся в состоянии Deleted, не допускается
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]