JoeRuspante wrote:
Per funzionare, però, mi pare di aver capito che tutte le volte il Repository viene creato "ex novo" e la "Include" viene accodata al DbSet attuale...
no, il metodo Include non fa questo. in realtà, il metodo Include dice al motore di EF come materializzare i dati. in parole povere, se tu devi tirare fuori una entità collegata, la prepara in maniera tale che non debba essere caricata se necessario. questa cosa, in scenari disconnessi (ad esempio, facendo uso di cache) è l'unica cosa possibile, perché l'istanza dell'object context non esiste più
E se un DAL non avesse l'utilizzo di EF? Come si dovrebbe fare per gestire le "Include"?
non avrebbe senso. Include è qualcosa che va utilizzato quando integri LINQ dentro la tua architettura. in una classica architettura basata su un DAL classico, dove non usi LINQ, è già così: la tua query materializza quello che serve e lo fa subito. con LINQ, invece, le query non le scrivi e devi aiutare il motore a farti materializzare già quello che ti serve. "tutto qui"
