Использую EntityFramework 6.2 CodeFirst. Сущности
A и
B содержат в себе коллекции объектов
Record. При этом
Record может содержаться только в одной коллекции, а при удалении
A или
B все объекты
Record, содержащиеся в их коллекциях тоже должны быть удалены.
В будущем, помимо сущностей
A, B добавятся еще другие, в которых также будут коллекции объектов
Record.
Если создать связь
many-to-many, то не работает каскадное удаление. А
.HasMany(a => a.Records).WithRequired() вызывает исключение.
Как правильно реализовать связь, чтобы работало каскадное удаление?
class Record
{
public int Id {get; set;}
public int Code {get; set;}
public DateTime Date {get; set;}
}
class A
{
public int Id {get; set;}
public ICollection<Record> Records {get; set;}
public string Comment {get; set;}
}
class B
{
public int Id {get; set;}
public ICollection<Record> Records {get; set;}
public DateTime CreationDate {get; set;}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<A>()
.HasMany(r => r.Records)
.WithMany();
modelBuilder.Entity<B>()
.HasMany(i => i.Records)
.WithMany();
}