Mam problemy z wczytaniem odwołania do obiektu nadrzędnego w Entity Framework 4. Z powodu Lazy Loading odwołanie do obiektu nadrzędnego (Condition) nie zostało załadowane do obiektu potomnego (DiscountLevel), więc staram się załadować go z:Entity Framework 4 Ładowanie wyjątku odniesienia
if(!this.ConditionReference.IsLoaded) this.ConditionReference.Load();
Ale to rzuca następujący wyjątek:
odniesienie jednostka nie może być załadowany, ponieważ nie jest dołączony do objectcontext
Więc jeśli próbuję dołączyć istniejącego obiektu podrzędnego (DiscountLevel) do kontekstu Object (a następnie załaduj odniesienie nadrzędny później):
context.AttachTo("tblDiscountLevel", this);
pojawia się następujący wyjątek:
An obiekt o tym samym kluczu już istnieje w ObjectStateManager. Istniejący obiekt znajduje się w stanie wolnostojącym. Obiekt może zostać dodany do ObjectStateManager tylko wtedy, gdy jest w stanie dodanym.
Czuję, że robię coś złego, ale nie wiem, co. Więc każda pomoc na ten temat jest bardzo doceniana. Daj mi znać, jeśli potrzebujesz dodatkowych informacji!
Czy próbowałeś "Uwzględnić" obiekt nadrzędny w zapytaniu? Zobacz: http://stackoverflow.com/questions/19319116/include-vs-load-performance-in-entityframework – Stefan
Próbowałem w tym rodzic, ale odniesienie nie zostanie załadowany. Może robię coś nie tak ... 'context.tblDiscountLevel.Include (" Condition "). Gdzie (lv => lv.LevelDiscountID == this.LevelDiscountID) .ToList()' –
Czy używasz 'code first' lub edmx? Podczas korzystania z kodu najpierw właściwość nawigacji do rodzica powinna być "wirtualna" i zawierać pewne konwencje nazewnictwa, aby działało po wyjęciu z pudełka. Jeśli używasz edmx, moje doświadczenie nie jest wystarczające, aby ci pomóc. – Stefan