问题描述
请问下大家有没遇到EF调用GetValidationErrors时出错,我知道报错是说未将对象设置为引用对象,但我不明白为什么调用GetValidationErrors时里面报错。错误代码如下:errormessage:Objectreferencenotsettoaninstanceofanobject.,theUniqueReferencevalueis:1334241M01.Wewillmovethisfile.]System.NullReferenceException:Objectreferencenotsettoaninstanceofanobject.atSystem.Data.Entity.Core.Objects.EntityEntry.DetectChangesInProperty(Int32ordinal,BooleandetectOnlyComplexProperties,BooleandetectOnly)atSystem.Data.Entity.Core.Objects.EntityEntry.DetectChangesInProperties(BooleandetectOnlyComplexProperties)atSystem.Data.Entity.Core.Objects.ObjectStateManager.DetectChangesInScalarAndComplexProperties(IList`1entries)atSystem.Data.Entity.Core.Objects.ObjectStateManager.DetectChanges()atSystem.Data.Entity.Core.Objects.ObjectContext.DetectChanges()atSystem.Data.Entity.Internal.InternalContext.DetectChanges(Booleanforce)atSystem.Data.Entity.Internal.InternalContext.GetStateEntries(Func`2predicate)atSystem.Data.Entity.Internal.InternalContext.GetStateEntries()atSystem.Data.Entity.Infrastructure.DbChangeTracker.Entries()atSystem.Data.Entity.DbContext.GetValidationErrors()atLigentia.DataTool.ClientLibraries.OfficeWorks.JobImportShipmentData.getDbError(Ligentix4EntitiesL4Entities)。其中getDbError是我自己写的方法。其余都是调用微软的EFContext.GetValidationErrors()时报错了。但在调用GetValidationErrors()方法前,我有判断调用的对象不是为空了,如:if(l4Entities!=null){IEnumerable<DbEntityValidationResult>validationResults=l4Context.GetValidationErrors();}请教大家帮帮忙看下为什么啊?谢谢大家
解决方案
解决方案二:
不是是这个问题吧。看看NullReferenceExceptioninDbContext.saveChanges()
解决方案三:
引用1楼findcaiyzh的回复:
不是是这个问题吧。看看NullReferenceExceptioninDbContext.saveChanges()
不是这个错误,我那个类是处理文件的,而且类名也不会和EDMX的有重复,有些文件就可以处理成功,但有些不可以。
解决方案四:
theUniqueReferencevalueis:1334241M01.Wewillmovethisfile我很奇怪这句话是从哪来的,是不是你自己写了什么抛异常的代码?
解决方案五:
话说,我在dbcontext.savechange()之前还都没有判断过什么呢,没出现过异常