Pracuję nad systemem wykorzystującym Entityframework i już od ponad 12 miesięcy, a projekt idzie dobrze, aż do wczoraj, kiedy mam teraz dziwny błąd, którego nie mam pojęcia. Pojawia się. robię nic innego, co mam zrobić wcześniej, ale raz załadować dany podmiot i próby uzyskania dostępu do jakichkolwiek podmiotów dziecko pojawia się następujący błąd:EntityFramework - Błąd proxy jednostki
The entity wrapper stored in the proxy does not reference the same proxy
Czy ktoś może rzucić jakieś światło na to, co to właściwie oznacza i co by to spowodowało?
Pokazanie mojego kodu naprawdę nie pomaga.
Tutaj jest uproszczoną wersją kodu:
var quote = new QuoteHelper().GetById(orderId);
var updatedQuotes = new Provider().GetExportQuotes(quote.DeparturePoint.Id,quote.DestinationPoint);
Błąd występuje przy dostępie DeparturePoint i DestinationPoint ale Quote ładunki prawidłowo i wszystkie właściwości są ładowane.
Podmiot Cytat wygląda trochę tak:
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; }
}
Dzięki, miałem okropną metodę klonowania, a członek wydawał się magią, której potrzebowałem, wydaje się, że nie jest. Dzięki. – JamesStuddart
MemberwiseClone często jest magią, której potrzebujesz, ale EF robi kilka wyjątkowych rzeczy. Przy okazji, jeśli uważasz, że to rozwiązanie nie jest wystarczające, słyszałem też o ludziach używających [AutoMappera] (http://automapper.org/) do taniego mechanizmu klonowania. Nie było to przeznaczone do tego celu, ale to nie znaczy, że nie jest to doskonałe rozwiązanie. –
Dzięki, zrobiłem bzdurę za sprawą, ale kiedy dostanę czas, aby do niego wrócić, wdrożę jedno z podanych przez ciebie rozwiązań.Dzięki za twój wgląd, wydaje się, że w tej kwestii nie ma zbyt wielu rzeczy i mam nadzieję, że pomoże to także innym osobom. – JamesStuddart