Entity framework 4 在EF中将实体分配给另一个实体时获取NullReferenceException

Entity framework 4 在EF中将实体分配给另一个实体时获取NullReferenceException,entity-framework-4,Entity Framework 4,我在下面的第二行得到了一个异常: var proceso = procesoService.GetEntityById(_codigoProceso); var bitacora = new BitacoraEjecucionProceso { Mensaje = mensaje, Fec

我在下面的第二行得到了一个异常:

        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源代码,不知道为什么获取实体的哈希代码会抛出null引用。。 有什么想法吗


谢谢

我发现了发生的事情。我的DLL没有更新,因为我正在使用外部CSDL、SSDL和MSL文件。

您是如何生成实体的?您是使用内置模板还是以某种方式自定义它们?您是否可能重写了默认的
GetHashCode()
实现?否,我使用了自动生成的上下文。似乎在某种程度上,当实体被包装时,它在其EntitySet.Name或EntitySet.Container.Name中返回null。。。。