У меня есть следующая модель домена:
public class Campaign
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<Content> Content { get; set; }
}
public class Content
{
public virtual long Id { get; set; }
public virtual string Body { get; set; }
}
Это настроено:
modelBuilder.Entity<Campaign>().HasMany(x => x.Content).WithOptional();
В моей службе у меня есть следующий код:
Campaign campaign = campaignRepository.GetById(id);
Это загружает кампанию и все связанные элементы контента в коллекцию, что здорово.Проблема связана со следующим кодом:
campaign.Name = "new value";
campaign.Content.Clear();
unitOfWork.Commit();
Это не удаляет строки содержимого из базы данных.Фактически он устанавливает внешний ключ в таблице содержимого равным нулю для затронутых строк, но не удаляет строки.
Затем я попытался изменить конфигурацию следующим образом:
modelBuilder.Entity<Campaign>().HasMany(x => x.Content).WithRequired();
Это будетпросто предоставьте мне следующее исключение: отношение из набора ассоциаций Campaign_Content находится в состоянии «удалено».С учетом ограничений на множественность соответствующий Campaign_Content_Target также должен находиться в состоянии «Удалено».
Должен быть способ удаления строк из коллекции содержимого.Я должен что-то упустить.Любая помощь приветствуется.