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!
你是如何生成实体的?您是使用内置模板还是以某种方式定制它们?是否有可能覆盖默认的'GetHashCode()'实现? – CodingGorilla
不,我使用自动生成的上下文。看起来,当实体获得包装时,它在EntitySet.Name或EntitySet.Container.Name ....中返回null。 – sabanito