2012-03-10 8 views
5

Así que tengo dos tablas, Facturas e Ítems de facturas. Cuando elimino una factura, me gustaría que también se eliminen todos los elementos de factura relacionados.Eliminar en cascada en Entity Framework

He actualizado la relación en SQL Server para hacer una eliminación en cascada cuando elimino una factura. Entity Framework no reconoció ese cambio, sin embargo, pero he leído que necesito actualizar manualmente mi EDMX para hacer la eliminación en cascada.

bien en la vista de diseño de mi EDMX, hice clic en la relación entre las dos tablas, y se verificaron las propiedades para tratar de poner mi eliminación en cascada

enter image description here

Como se puede ver, hay dos propiedades: onDelete End1 onDelete y End2 onDelete

Cuál qué necesito para fijar a la cascada?

Respuesta

5

Si End1 es la principal de la relación (es decir, la factura que tiene partidas de factura), entonces tiene sentido para que se elimina en cascada.

7

principio estaba confundido acerca de esto también, y la razón era que no estaba segura de lo que si era el campo navegación por la propiedad o el campo Nombre de la función que describe qué objeto un fin representado, haciendo una respuesta como Devidigitals ineficaz.

Y la respuesta a eso es que un extremo se describe en el campo nombre del rol.

Así que si sabemos que queremos eliminar todos InvoiceItems para una facturacuando la factura en cuestión se elimina, probablemente sabemos que debemos establecer el OnDelete para la factura, y para encontrar la específica final que representa la factura en la relación, búsqueda del final donde el nombre del rol es "Factura". En el ejemplo anterior, eso es End1.

Esto puede ser obvio si lo conoce, pero no si no lo sabe.

+0

Veo que editó su publicación para decir que End2 anterior era el nombre de la función "Factura". ¿No debería ser eso End1? –

+0

@KyleW Oh mi, por supuesto tienes razón. Gracias por notificarme – Alex

Cuestiones relacionadas