Ho problemi con il framework di entità che restituisce proxy quando desidero l'effettiva classe di entità. La prima volta che eseguo il mio codice, tutto funziona correttamente (nessun proxy), ma dopo ogni iterazione uno dei miei DbSet restituisce sempre proxy anziché il tipo effettivo.Perché EF restituisce una classe proxy anziché l'entità effettiva?
Dispongo del contesto dopo ogni iterazione, quindi non capisco perché la prima volta che funziona funziona, e ogni volta dopo non lo fa.
Il mio codice non funziona su questa linea. Tutti i miei POCO hanno l'attributo Table impostato, ma poiché restituisce una classe proxy non esiste un attributo table.
TableAttribute attrib = (TableAttribute)attributes.Single();
C'è qualche magia dietro le quinte nel DbContext che vive dopo aver distrutto l'oggetto?
mi muovo i miei oggetti in memoria, con la seguente
MajorClasses = ctx.MajorClasses.ToArray();
Ho anche provato
MajorClasses = ctx.MajorClasses.AsNoTracking().ToArray();
Nel mio OnModelCreating ho il seguente set
base.Configuration.ProxyCreationEnabled = false;
base.Configuration.LazyLoadingEnabled = false;
Ho aggiunto più dettagli alla mia domanda. Ho avuto questa impostazione impostata e nessuna mia applicazione non può trattare i proxy come il POCO. –
È nella domanda aggiornata. Rifletto la classe per ottenere attributi da essa. –
@ MalcolmO'Hare Ho pubblicato il codice che usiamo per ottenere il tipo POCO dal tipo proxy. – cadrell0