3.级联删除

Posted nocanstillbb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.级联删除相关的知识,希望对你有一定的参考价值。

authors表是主表

books表是子表

默认情况下,当使用datacontext.dbset.remove 删除authors时,  与之相关的books也会一起删除掉.

using (var context = new BookStore())
    
    var author = context.Authors
        .FirstOrDefault();
    
    context.Authors.Remove(author);
    context.SaveChanges();

 

 

不过可以使用WillCascadeOnDelete(false)来关闭级联删除

protected override void OnModelCreating(DbModelBuilder modelBuilder)

    modelBuilder.Entity<Book>()
        .HasOptional<Author>(b => b.Author)
        .WithMany()
        .WillCascadeOnDelete(false);

这样再执行本随笔第一个代码段就不会删除与之相关的books了.

以上是关于3.级联删除的主要内容,如果未能解决你的问题,请参考以下文章

3.级联删除

sql级联更新和级联删除不起作用

如何理解access设置中的“级联更新”和“级联删除”?

数据库中啥是“级联更新关联字段”和“级联删除关联字段”

SQL 级联更新,级联删除的概念

多表联查时的sql删除语句的写法,即级联删除,将相关联的数据级联删除