Sto lavorando su un sistema che utilizza Entityframework e sono stato per più di 12 mesi ora, e il progetto è andato bene, fino a ieri, dove ora ho uno strano errore che non ho idea del perché capita. sto facendo nulla di diverso da quello che ho fatto prima, ma una volta mi carico l'entità in questione e cercare di accedere a qualsiasi entità figlio ottengo il seguente errore:EntityFramework - Errore proxy entità
The entity wrapper stored in the proxy does not reference the same proxy
Qualcuno può far luce su ciò che questo in realtà significa e cosa potrebbe causare questo?
Mostrare il mio codice non aiuta molto.
Ecco una versione semplificata del codice:
var quote = new QuoteHelper().GetById(orderId);
var updatedQuotes = new Provider().GetExportQuotes(quote.DeparturePoint.Id,quote.DestinationPoint);
L'errore si verifica quando si accede correttamente DeparturePoint e DestinationPoint ma carichi citazione, e tutte le proprietà vengono caricati.
L'entità citazione sembra un po 'come questo:
public class Quote : BaseQuote, ICloneable
{
public Guid DeparturePointId { get; set; }
public virtual LocationPoint DeparturePoint{ get; set; }
public Guid DestinationPointId { get; set; }
public virtual LocationPoint DestinationPoint{ get; set; }
}
Grazie, ho avuto un orribile metodo di clonazione e membro è sembrato come se la magia di cui avevo bisogno mi sembrasse che non fosse così. Grazie. – JamesStuddart
MemberwiseClone è spesso la magia di cui hai bisogno, ma EF fa alcune cose uniche. A proposito, se trovi che questa soluzione non è sufficiente, ho anche sentito parlare di persone che usano [AutoMapper] (http://automapper.org/) per un economico meccanismo di clonazione. Non era destinato a questo, ma ciò non significa che non sia una soluzione perfettamente valida. –
Grazie, ho fatto un pasticcio per risolvere il problema, ma quando avrò il tempo di tornare ad esso implementerò una delle soluzioni che hai dato.Grazie per l'intuizione, sembra che non ci sia molto in questo numero e spero che questo aiuti anche altre persone. – JamesStuddart