Я пытаюсь отменить некоторые изменения с помощью функции перезагрузки. Я получаю InvalidOperationException
. Как я могу предотвратить это?Entity Framework 5 InvalidOperationException on Reload
DbContext.SaveChanges();
//Entity is in Unchanged state
//Make some changes to an entity
//Change state to modified
DbContext.Entry(entity).Reload();
InvalidOperationException
EntityMemberChanged или EntityComplexMemberChanged был вызван без первого вызова EntityMemberChanging или EntityComplexMemberChanging на тот же изменения трекер с тем же именем свойства. Для информации о надлежащей отчетности об изменениях см. Документацию Entity Framework .
EDIT:
Я включил и отключил ProxyCreationEnabled
, LazyLoadingEnabled
.
Пробовал различные подходы, а. Все эти попытки вызывают одно и то же исключение.
var objContext = ((IObjectContextAdapter)context).ObjectContext;
objContext.Refresh(RefreshMode.ClientWins, entry.Entity);
entry.OriginalValues.SetValues(entry.GetDatabaseValues());
Надежда я получить решение. Не хотите удалять полный DbContext, чтобы перезагрузить все данные.
Может кто-нибудь из них поможет? http://stackoverflow.com/questions/5221314/refresh-entity-instance-with-dbcontext или этот http://stackoverflow.com/questions/5799737/entity-framework-4-1-dbset-reload или этот http: //connect.microsoft.com/VisualStudio/feedback/details/694567/entitymemberchanged-or-entitycomplexmemberchanged-was-called-without-first-calling-entitymemberchanging-or-entitycomplexmemberchanging-on-the-same-change-tracker-with- имя того же самого свойства? – LiverpoolsNumber9
Это может не иметь ничего общего с вашей ситуацией, но вам нужно проверить .. Вы выполняете какой-либо тип многопоточности/асинхронного программирования в вашей программе? Как использовать любой PLINQ или 4.5 async/wait? – tostringtheory
@tostringtheory Allready проверил его без каких-либо потоков. Та же проблема. –