Я использую EF 4.1, где пытаюсь сопоставить свою POCO с моей существующей базой данных. Это работает нормально, пока я не попытаюсь удалить элемент, от которого зависит другой элемент. Я хочу включить каскадное удаление, чтобы при удалении моего первого элемента все зависимости также были удалены (я думаю, это называется каскадным удалением).
Я попытался включить это в OnModelCreating:
modelBuilder.Entity<Component>()
.HasMany(c => c.Specifications)
.WithRequired(s => s.Component)
.Map(m => m.MapKey("ComponentId"))
.WillCascadeOnDelete(true);
Однако я все еще получаю исключение The DELETE statement conflicted with the REFERENCE constraint
.
База данных довольно проста:
Компонент
ComponentId (PK)
Description
Спецификация
SpecificationID (PK)
Description
ComponentID (FK)
Я создал два следующих класса для соответствия этой настройке:
public class Specification
{
[Key]
[Required]
public int Id { get; set; }
[MaxLength(50)]
[Required]
public string Description { get; set; }
public virtual Component Component { get; set; }
}
и
public class Component
{
[Key]
[Required]
public int Id { get; set; }
[MaxLength(50)]
[Required]
public string Description { get; set; }
public virtual ICollection<Specification> Specifications { get; set; }
}