2009-11-03 13 views
6

Estoy desarrollando un servicio WCF que utiliza el marco de entidad como fuente de datos. Casi todo está bien, excepto el problema con los registros eliminados. En nuestra base de datos estamos utilizando la eliminación suave (marca el atributo de registro IsDeleted = true). ¿Mi pregunta sobre cómo excluir los registros eliminados del conjunto de entidades?Entity Framework y registros borrados blandos

Por ejemplo, la entidad "A" tiene el conjunto de entidades "Bs" (FK en la tabla "B"). ¿Cómo hacer que la entidad "Bs" establecida solo contenga registros que no se borren?

Gracias

Respuesta

0

Una forma sería utilizar una consulta de definición. Pero normalmente manejamos esto en el Repositorio, ya que de hecho queremos materializar entidades "borradas blando" en casos raros.

6

He escrito una publicación sobre este tema, espero que ayude.

http://blog.jorgef.net/2010/12/ef-soft-delete.html

+0

Una cosa a tener en cuenta es que si no utiliza la entrada.ApplyOriginalValues ​​(entry.Entity) obtendrá valores nulos para sus propiedades de navegación. – Noel

0

Se podría trazar entidades que EF a las vistas en lugar de tablas

CREATE VIEW vw_Currency AS 
SELECT 
    * 
FROM 
    Currency c 
WHERE 
    c.IsAKDeleted=0 

He trabajado en un sistema que utiliza este enfoque, pero no estaba basado en EF. No lo he intentado con EF