自动从表中删除行
本文关键字:删除行 | 更新日期: 2023-09-27 18:04:35
我有两个实体:
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Chapter> Chapters { get; set; }
}
public class Chapter
{
public int Id { get; set; }
public string Name { get; set; }
public string Period { get; set; }
}
和,我想要的实体框架自动被删除行从表章,其中外键(Book_Id)是空的。
不知道你的映射,我建议添加一个导航属性从Chapter
回到Book
。在你的映射章节,确保设置WillCascadeOnDelete
。这将确保如果一个Book
被删除,所有的Chapters
也将被删除。
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Chapter> Chapters { get; set; }
}
public class Chapter
{
public int Id { get; set; }
public virtual int BookId {get;set;}
public virtual Book Book {get;set;}
public string Name { get; set; }
public string Period { get; set; }
}
public class ChapterMapping : EntityTypeConfiguration<Chapter>
{
public ChapterMapping
{
HasKey(c=> c.Id);
Property(c => c.Id).HasDatabaseGeneratedOption(
DatabaseGeneratedOption.Identity);
HasRequired(c => c.Book).WithMany(b => b.Chapters)
.HasForeignKey(c => c.BookId).WillCascadeOnDelete(true);
}
}