У меня есть «EnterpriseEntity» и «TagsEntity», которые имеют отношение «многие ко многим» в таблице «EnterpriseTag», эта таблица отношений просто хранит EnterpriseID и TagID.
Моя задача - обновить этос EF4.Я кодирую следующее:
//Delete old tags
foreach(var oldTag in e.Tags.ToList())
{
_enterpriseRepository.dbContext.DeleteObject(oldTag);
}
//now insert the new ones, this may have elements from old tag list
foreach(var newTag in newTags)
{
e.Tags.Add(newTag);
}
Как вы можете видеть, список newTags может содержать элементы из старого списка тегов, но я не хочу тратить время на проверку этого тега по тегу.
Но когда я вызываю .Savechanges (), я получаю следующее исключение:
Добавление отношения с сущностью, находящейся в удаленном состоянии, не допускается.
ОБНОВЛЕНИЕ: В моем исходном коде у меня было:
//This delete the Tag object, and i just want to delete the relation
_enterpriseRepository.dbContext.DeleteObject(oldTag);
Правильный способ сделать это:
//this just delete the relation, not the tag
e.Tags.Remove(oldTag);