/ / Em cascata excluindo LINQ EF4.0 - c #, em cascata

Em cascata excluindo LINQ EF4.0 - c #, em cascata

Eu tenho um banco de dados do SQL Server como este: tabela mestre, tabela de detalhes, tabela de subdiretórios. E eu uso o Linq e o EF 4.0.

Então, o mestre pode ter mais detalhes e cada detalhe pode ter mais subdiretórios.

Eu tenho um ID MASTER e quero excluir este registro.

Como posso fazer para apagar um registro mestre com detalhes e subdetros em un colpo solo (EF4.0)?

Respostas:

1 para resposta № 1

A EF ativa o efeito de exclusão em cascata por padrão para todas as entidades.

O seguinte é copiado de Aqui.

Considere as seguintes entidades Student e Standard que possuem uma relação um para muitos.

public class Student
{
public Student() { }

public int StudentId { get; set; }
public string StudentName { get; set; }

public virtual Standard Standard { get; set; }
}

public class Standard
{
public Standard()
{
Students = new List<Student>();
}
public int StandardId { get; set; }
public string Description { get; set; }

public virtual ICollection<Student> Students { get; set; }
}

O exemplo a seguir demonstra o efeito de exclusão em cascata entre entidades que possuem um relacionamento um para muitos.

using( var ctx = new SchoolContext() ) {

var student1 = new Student() { StudentName = "James" };
var student2 = new Student() { StudentName = "Gandhi" };

var standard1 = new Standard() { StandardName = "Standard 1" };

student1.Standard = standard1;
student2.Standard = standard1;

ctx.Students.Add( student1 );
ctx.Students.Add( student2 );

//inserts students and standard1 into db
ctx.SaveChanges();

//deletes standard1 from db and also set standard_StandardId FK column in Students table to null for
// all the students that reference standard1.
ctx.Standards.Remove( standard1 );

ctx.SaveChanges();
}

No exemplo acima, ele exclui o padrão1 do banco de dados e também configura a coluna standard_StandardId FK na tabela Alunos como nula para todos os registros que fazem referência ao padrão1.

O EF exclui automaticamente os registros relacionados na tabela do meio para entidades de relacionamento muitos-para-muitos, se uma ou outra entidade for excluída.

Assim, o EF ativa o efeito de exclusão em cascata por padrão para todas as entidades.