0

I 엔티티 프레임 워크 코드 첫 번째 (4.1)EntityFramework 4.1 GetValidationErrors 내부 예외

"An item with the same key has already been added." 

스택 트레이스는 다음과 같다을 사용하여) (System.Data.Entity.DbContext.GetValidationErrors를 호출 할 때 다음과 같은 예외가 있습니다

at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) 
at System.Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.TryCreateType(Type type, StructuralType cspaceType, EdmType& newOSpaceType) 
at System.Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly() 
at System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load() 
at System.Data.Metadata.Edm.ObjectItemAssemblyLoader.LoadAssemblies(IEnumerable`1 assemblies, ObjectItemLoadingSessionData sessionData) 
at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData) 
at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors) 
at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage) 
at System.Data.Metadata.Edm.ObjectItemCollection.ExplicitLoadFromAssembly(Assembly assembly, EdmItemCollection edmItemCollection, Action`1 logLoadMessage) 
at System.Data.Metadata.Edm.MetadataWorkspace.ExplicitLoadFromAssembly(Assembly assembly, ObjectItemCollection collection, Action`1 logLoadMessage) 
at System.Data.Entity.Infrastructure.DbCompiledModel.CreateObjectContext[TContext](DbConnection existingConnection) 
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 
at System.Data.Entity.Internal.LazyInternalContext.get_ObjectContext() 
at System.Data.Entity.Internal.InternalContext.DetectChanges(Boolean force) 
at System.Data.Entity.Internal.InternalContext.GetStateEntries(Func`2 predicate) 
at System.Data.Entity.DbContext.GetValidationErrors() 

불행히도 문제가 어디서 왔는지, 어떤 poco 엔티티가이 문제를 일으키는 지 확인할 수 없었습니다.

실마리가 있습니까?

감사

답변

1

그래이 재미 하나, 문제는 여기에 이미 컨텍스트에 부착 된 개체를 다시 연결하는 시도에서 비롯됩니다. 이것은 논리 오류에서 올 수 있습니다. 또는 연결된 객체를 지우지 않고 컨텍스트를 다시 사용 중일 수 있습니다. 컨텍스트에 현재 연결된 항목을 확인하는 데 사용할 수있는 데이터베이스에 로컬 컬렉션이 있습니다.

ctx.YourEntityCollection.Local