当删除一对多关系时,如果关系是可选的并且您删除了父对象,则其余对象将保持孤立状态,并且不会级联删除。
var album = new Album
{
Name = "Test Album",
Description = "Test Album Description",
Images = new Collection<Image>
{
new Image {
Name = "Image 1",
Description = "Image 1 Description"
},
new Image {
Name = "Image 2",
Description = "Image 2Description"
},
}
};
albumRepository.Add(album);
albumRepository.UnitOfWork.Commit();
在Image Entity下,我将AlbumId视为Nullable,因为有些图像可能是孤立的。
然后我打电话。
albumRepository.Delete(toRemove);
albumRepository.UnitOfWork.Commit();
相册被删除,但曾经相关的图像是孤立的,而且他们的AlbumId会从行中删除。
答案 0 :(得分:1)
这样做了。
modelBuilder.Entity<Image>()
.HasOptional(d => d.Album)
.WithMany(d => d.Images)
.WillCascadeOnDelete(true);