2011-08-24 31 views
0

我得到的例外在以下的第二行指定一個實體到另一個時:獲得的NullReferenceException在EF

 var proceso = procesoService.GetEntityById(_codigoProceso); 
     var bitacora = new BitacoraEjecucionProceso 
          { 
           Mensaje = mensaje, 
           Fecha = DateTime.Now, 
           Resultado = resultado, 
           Proceso = proceso 
          }; 

異常的完整堆棧跟蹤是:

System.NullReferenceException: Object reference not set to an instance of an object. 
    at System.Data.Objects.EntitySetQualifiedType.GetHashCode(EntitySetQualifiedType obj) 
    at System.Collections.Generic.Dictionary`2.FindEntry(TKey key) 
    at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key) 
    at System.Data.Objects.ObjectStateManager.AddStateManagerTypeMetadata(EntitySet entitySet, ObjectTypeMapping mapping) 
    at System.Data.Objects.ObjectStateManager.GetOrAddStateManagerTypeMetadata(Type entityType, EntitySet entitySet) 
    at System.Data.Objects.ObjectStateManager.AddEntry(IEntityWrapper wrappedObject, EntityKey passedKey, EntitySet entitySet, String argumentName, Boolean isAdded) 
    at System.Data.Objects.ObjectContext.AddSingleObject(EntitySet entitySet, IEntityWrapper wrappedEntity, String argumentName) 
    at System.Data.Objects.DataClasses.RelatedEnd.AddEntityToObjectStateManager(IEntityWrapper wrappedEntity, Boolean doAttach) 
    at System.Data.Objects.DataClasses.RelatedEnd.AddGraphToObjectStateManager(IEntityWrapper wrappedEntity, Boolean relationshipAlreadyExists, Boolean addRelationshipAsUnchanged, Boolean doAttach) 
    at System.Data.Objects.DataClasses.RelatedEnd.Add(IEntityWrapper wrappedTarget, Boolean applyConstraints, Boolean addRelationshipAsUnchanged, Boolean relationshipAlreadyExists, Boolean allowModifyingOtherEndOfRelationship, Boolean forceForeignKeyChanges) 
    at System.Data.Objects.DataClasses.RelatedEnd.Add(IEntityWrapper wrappedEntity, Boolean applyConstraints) 
    at System.Data.Objects.DataClasses.EntityReference`1.set_ReferenceValue(IEntityWrapper value) 
    at System.Data.Objects.DataClasses.EntityReference`1.set_Value(TEntity value) 
    at Aseinfo.VH4.Data.BitacoraEjecucionProceso.set_Proceso(Proceso value) in C:\vh4\VH4\Data\AppDataContext.Designer.cs:line 16295 

我已經檢查過EF源代碼,並且不知道爲什麼我的實體的哈希代碼拋出一個NullReference .. 任何想法?

Thx!

+0

你是如何生成實體的?您是使用內置模板還是以某種方式定製它們?是否有可能覆蓋默認的'GetHashCode()'實現? – CodingGorilla

+0

不,我使用自動生成的上下文。看起來,當實體獲得包裝時,它在EntitySet.Name或EntitySet.Container.Name ....中返回null。 – sabanito

回答

0

我發現了所發生的事情。我的DLL沒有更新,因爲我使用外部CSDL,SSDL和MSL文件。

相關問題