Próbuję odrzucić pewne zmiany za pomocą funkcji przeładowania. Dostaję InvalidOperationException
. Jak mogę temu zapobiec?Entity Framework 5 InvalidOperationException na przeładowaniu
DbContext.SaveChanges();
//Entity is in Unchanged state
//Make some changes to an entity
//Change state to modified
DbContext.Entry(entity).Reload();
InvalidOperationException
EntityMemberChanged lub EntityComplexMemberChanged nazwano bez uprzedniego nazywając EntityMemberChanging lub EntityComplexMemberChanging na ten sam tracker zmienia się z tej samej nazwie. Informacje na temat poprawności zgłaszania zmian w dokumentacji można znaleźć w dokumentacji Entity Framework .
EDIT:
mam włączać i wyłączać ProxyCreationEnabled
, LazyLoadingEnabled
.
Próbowano różnych podejść. Wszystkie te próby rzucają ten sam wyjątek.
var objContext = ((IObjectContextAdapter)context).ObjectContext;
objContext.Refresh(RefreshMode.ClientWins, entry.Entity);
entry.OriginalValues.SetValues(entry.GetDatabaseValues());
nadzieję, że uzyskać rozwiązanie. Nie chcę pozbyć się pełnego DbContext, aby ponownie załadować wszystkie dane.
Czy któryś z nich może pomóc? http://stackoverflow.com/questions/5221314/refresh-entity-instance-with-dbcontext lub ten http://stackoverflow.com/questions/5799737/entity-framework-4-1-dbset-reload lub ten http: //connect.microsoft.com/VisualStudio/feedback/details/694567/entitymemberchanged-or-entitycomplexmemberchanged-was-called-without- first-calling-entitymember-zmienne-lub-z-stosowaniem-systemu-zmiennego-z -same-zmienia-tracker-- ta sama nazwa własności ?? – LiverpoolsNumber9
To może nie mieć nic wspólnego z twoją sytuacją, ale chciałem sprawdzić .. Czy robisz jakiś rodzaj wielowątkowości/asynchronizacji w twoim programie? Podobnie jak przy użyciu dowolnego PLINQ lub 4.5 async/czekają? – tostringtheory
@tostringtheory Allready sprawdził go bez żadnych wątków. Taki sam problem. –