1 Отношение -к -1, вызывающее исключение :AssociationSet находится в состоянии «Удалено». Учитывая ограничения множественности

Сначала я установил отношение от 1 -до -1, используя код EF, следуя методу, описанному здесь :

. Однонаправленный Один -К -Одно отношение в Entity Framework

Мое отображение выглядит так...

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity()
       .HasRequired(i => i.NewsItem)
       .WithOptional(e => e.Asset)
       .Map(m => m.MapKey("NewsItemId"));
}

Но когда я получаю это исключение...

A relationship from the 'Asset_NewsItem' AssociationSet is in the 'Deleted' state. Given multiplicity constraints, a corresponding 'Asset_NewsItem_Source' must also in the 'Deleted' state.

Всякий раз, когда этот код запускается:

var entry = _db.NewsItems.Find(id);

entry.Asset = new Asset();

_db.DbContext.SaveChanges();

Я могу заставить что-то работать, если я явно отмечу предыдущий актив, связанный с NewsItem, для удаления, НО это кажется немного шатким. Похоже, что на основе сопоставления приведенный выше код должен просто работать... заменив старый ассет на новый.

Я делаю что-то неправильно? Есть ли что-то, что мне нужно указать в сопоставлении, чтобы все работало правильно? Или это просто способ EF удалить, а затем добавить связанные объекты, подобные этому?

10
задан Community 23 May 2017 в 12:00
поделиться