Así que aquí está mi situación:Entity Framework, suave-supresión y consultas
Estoy suave eliminando algunas filas de una tabla, usando una bandera IsDeleted
, de manera que una puede mantener un seguimiento de mis datos archivados. Lo hago sobrescribiendo la declaración SaveChanges
en mi ObjectContext
.
La pregunta es: ¿cómo puedo seleccionar solo la (s) fila (s) que tienen IsDeleted == false
, sin tener que especificar && !IsDeleted
en cada pregunta?
¿Hay alguna manera de especificar esto en mi contexto directamente?
tkx!
EF-Código primera o la cesión de primera? – StriplingWarrior
En vez de marcar, usa una tabla. Para la tabla eliminada, PK puede ser la misma PK que la tabla principal, con PK a FK de la tabla eliminada en la tabla principal. Si tienes un registro en eliminado, se elimina, si no está activo. Entonces es solo una simple unión. El rendimiento de las consultas será mejor que usar un indicador de bits. –
@JonRaynor: Las bases de datos no son mi especialidad, pero me parece que revisar la bandera de un bit tiene que ser mucho menos costoso que hacer una combinación, especialmente porque normalmente estarás más interesado en saber qué elementos * no * se borran (y por lo tanto no están presentes en la tabla eliminada). Si el indicador de bit está perjudicando el rendimiento de la consulta, preferiría un índice sobre la creación de una tabla completamente separada. – StriplingWarrior