DELETAR TODOS OS REGISTROS DA TABELA

PERCIFILHO 22/05/2017 15:16:05
#474118
Boa tarde meus amigos.
Estou precisando deletar todos os registros de uma tabela, mas acho que meu cérebro [Ô]pifou[Ô].
Quando vou deletar apenas um registro, faço assim:

Pessoa pessoa ;
using (db = new Conexao())
{
int pessoa_Id = Convert.ToInt32(dgv.Rows[i].Cells[[Ô]Pessoa_Id[Ô]].Value);
pessoa = db.Pessoa.Where(x => x.Pessoa_Id == pessoa_Id).FirstOrDefault<Pessoa>();
}

using (db = new Conexao())
{
db.Entry(pessoa).State = System.Data.Entity.EntityState.Deleted;
db.SaveChanges();
}


Agora só estou [Ô]apanhando[Ô] para deletar todos os registros de uma tabela. Alguém poderia me ajudar?
JABA 22/05/2017 16:08:10
#474120
Resposta escolhida
Você está trazendo apenas uma instância da sua entidade Pessoa, por isso que só exclui uma unidade. O certo seria trazer todas as instâncias e alterar o estado de cada uma delas para EntityState.Deleted. Uma alternativa mais atraente para resolver isso seria o seguinte:

db.Pessoa.RemoveRange(db.Pessoa.Where(x => x.Pessoa_Id == pessoa_Id));
db.SaveChanges();
PERCIFILHO 23/05/2017 08:10:37
#474131
Valeu Jaba, muito obrigado.
Até mais.
Tópico encerrado , respostas não são mais permitidas