Dica
ADO.NET Desativando a deleção em cascata no entity framework


No Entity framework 6 a deleção em cascata é padrão. Quando não especificado, ela é habilitada.

Não há, nas annotations, como controlar a deleção em cascata, o controle precisa ser feito em fluent.

O problema é que, normalmente em um schema, deleção em cascata é a exceção, não regra. Com isso, dá muito trabalho desativar a deleção em cascata em cada uma das foreign keys do modelo.

A solução do problema é desativar a deleção em cascata globalmente no modelo, invertendo o default, assim você só precisará habilitar explicitamente a deleção em cascata quando precisar dela.

Para desativar a deleção em cascata basta utilizar as seguintes instruções no evento OnModelCreating:

modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();

Fique atento que fazendo isso em um modelo existente você precisará criar uma nova migration que vai corrigir as chaves estrangeiras, retirando a deleção em cascata.

Búfalo Informática
e-mail: Contato@bufaloinfo.com.br
Telefones: (21) 99240-7281 (21) 99240-5134