2009-11-03 17 views
6

Sto sviluppando un servizio WCF che utilizza l'entity framework come origine dati. Quasi tutto è ok tranne il problema con i record cancellati. Nel nostro database utilizziamo il soft delete (attributo del record mark IsDeleted = true). La mia domanda su come escludere i record cancellati dal set di entità?Entity Framework e soft record cancellati

Ad esempio, l'entità "A" ha l'entità impostata "Bs" (FK alla tabella "B"). Come rendere che l'entità "Bs" impostata solo contenga da record che non vengono cancellati?

Grazie

risposta

0

Un modo potrebbe essere quello di utilizzare una query di definizione. Ma di solito lo gestiamo nel repository, poiché in realta 'vogliamo materializzare entità "soft deleted" in rari casi.

6

Ho scritto un post su questo argomento, spero che sia d'aiuto.

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

+0

Una cosa da tenere a mente è che se non si utilizza entry.ApplyOriginalValues ​​(entry.Entity) si ottengono valori nulli per le proprietà di navigazione. – Noel

0

Si potrebbe mappare si entità EF a vista, invece di tabelle

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

Ho lavorato su un sistema che ha utilizzato questo approccio, ma non era basata su EF. Non l'ho provato con EF