Ho riscontrato problemi con una delle mie query a causa del rilevamento delle modifiche e delle funzionalità di caricamento lenta di EF. Il fatto è che dopo aver ottenuto il risultato della query, sto usando AutoMapper per mappare gli oggetti del dominio nel mio modello di business, ma continua a generare un'eccezione perché il contesto è stato eliminato.L'istanza ObjectContext è stata eliminata e non può più essere utilizzata per operazioni che richiedono una connessione
L'istanza ObjectContext è stata eliminata e non può più essere utilizzata per le operazioni che richiedono una connessione.
Quando guardo la collezione risultante nel debugger, vedo che si tratta di un elenco di DynamicProxy
e non l'effettiva entità. Ho provato a fermare il rilevamento dei cambiamenti, ma questo non ha aiutato. Ecco il mio codice:
public List<ContentTypeColumn> GetContentTypeColumns(Int64 contentTypeId)
{
List<ContentTypeColumn> result = new List<ContentTypeColumn>();
using (SCGREDbContext context = new SCGREDbContext())
{
ContentType contentType = context.ContentTypes.Include("Parent").AsNoTracking().FirstOrDefault(x => x.Id.Equals(contentTypeId));
result.AddRange(contentType.ContentTypeColumns.ToList());
while (contentType.Parent != null)
{
result.AddRange(contentType.Parent.ContentTypeColumns.ToList());
contentType = contentType.Parent;
}
}
return result.ToList();
}
Nota: Se avete bisogno di guardare nel mio modello di dominio coinvolti in questa operazione si può fare riferimento a this question.
Caricamento lento? Questo potrebbe causare questo. –
Lo so, e sto cercando di evitare il Lazy Loading in questo caso particolare, ma non riesco a trovare il modo di aggirarlo. Eventuali suggerimenti? – Kassem
Possibile duplicato di [Come risolvere l'errore L'istanza di ObjectContext è stata eliminata e non può più essere utilizzata per operazioni che richiedono una connessione] (https://stackoverflow.com/questions/18398356/how-to-solve-the- error-the-objectcontext-instance-has-been-disposed-and-can-no-l) –