Linq to sql Linq到Sql如何删除表和所有关系

Linq to sql Linq到Sql如何删除表和所有关系,linq-to-sql,Linq To Sql,我有一个表“User”,它与大约7个其他表有关系。如果我尝试删除该用户,它将不允许我删除其他表中具有userId的所有数据。是否有一种方法可以自动删除所有内容,而不必一次删除每个具有该用户ID的表?您可以使用级联删除。 代码优先:在上下文类的OnModelCreating方法中: modelBuilder.Entity<Table1>() .HasOptional(c => c.User) .WithMany(c => c.Table1s) .HasForeignKey(

我有一个表“User”,它与大约7个其他表有关系。如果我尝试删除该用户,它将不允许我删除其他表中具有userId的所有数据。是否有一种方法可以自动删除所有内容,而不必一次删除每个具有该用户ID的表?

您可以使用级联删除。 代码优先:在上下文类的OnModelCreating方法中:

modelBuilder.Entity<Table1>()
.HasOptional(c => c.User)
.WithMany(c => c.Table1s)
.HasForeignKey(c => c.UsereID).WillCascadeOnDelete(true);

modelBuilder.Entity<Table2>()
.HasRequired(c => c.User)
.WithMany(c => c.Table2s)
.HasForeignKey(c => c.UsereID).WillCascadeOnDelete(true);
modelBuilder.Entity()
.has可选(c=>c.User)
.WithMany(c=>c.Table1s)
.HasForeignKey(c=>c.UsereID).WillCascadeOnDelete(true);
modelBuilder.Entity()
.HasRequired(c=>c.User)
.有许多(c=>c.Table2s)
.HasForeignKey(c=>c.UsereID).WillCascadeOnDelete(true);

级联删除。