Spero di poter ottenere alcuni chiarimenti su quali sono le migliori pratiche per l'utilizzo di un dbcontext
con il monitoraggio disabilitato. Quali sono le implicazioni per l'impostazione del context.Configuration.ProxyCreationEnabled
false?
A quanto ho capito, questo disabiliterà efficacemente il tracciamento sulle entità, ma cosa succede se ho bisogno di SaveChanges
con questo contesto? Penso di ricordare di aver visto un modo per ottenere manualmente il contesto per tracciare un'entità specifica, ma non sono in grado di trovare ulteriori informazioni al riguardo. Quali sono le implicazioni in termini di prestazioni per la chiamata di SaveChanges
in un contesto in cui la creazione del proxy è disabilitata?
Ho anche preoccupazioni simili con l'utilizzo di query no-tracking pure. E 'possibile SaveChanges
dopo il recupero dei dati con AsNoTracking
?
Senza ProxyCreationEnabled, EF non caricherà avidamente le entità figlio per l'oggetto senza esplicitamente "Includerle" e anche il rilevamento delle modifiche verrà disabilitato.
Se si utilizza AsNoTracking, sarà necessario impostare gli stati delle entità su Modificato nel contesto dell'oggetto per mantenere le modifiche. Puoi farlo con un codice come questo:
context.Entry(entity).State = EntityState.Modified;
Ecco un paio di altre domande su SO che approfondiscono la tua domanda.
Quali sono gli svantaggi di disattivare ProxyCreationEnabled per CTP5 del codice EF prima
DbSet.Attach (entità) vs DbContext.Entry (entity) .State = EntityState.Modified