Sto costruendo un sito Web con MVC 5 e Entity Framework 6, implementando l'unità di lavoro & Modelli di deposito e, per flessibilità e prestazioni, desiderano utilizzare il rilevamento delle modifiche di snapshot di Entity Framework piuttosto che il rilevamento delle modifiche proxy. Lo svantaggio di questa funzione è che la correzione della proprietà di navigazione non viene eseguita fino a quando DetectChanges
viene chiamato da DbContext
.
Aggiunta di un elemento a una raccolta ...
order.LineItems.Add(orderLineItem);
L'associazione inversa non verrà aggiornata fino a quando DetectChanges
è chiamato ...
lineItemOrder = orderLineItem.Order; // lineItemOrder == null
dbcontext.DetectChanges();
lineItemOrder = orderLineItem.Order; // lineItemOrder == order
Questo comportamento di correzione delle proprietà di navigazione sembra troppo specifico per Entity Framework per il livello di astrazione che mi piacerebbe vedere. Questo comportamento infrange i principi del Domain Driven Design o può DetectChanges
essere considerato una transazione commerciale?