Я использую Entity Framework 6 с Oracle.ManagedDataAccess.Спорадически я получаю эту ошибку:
System.NullReferenceException: Object reference not set to an instance of an object.
at Oracle.ManagedDataAccess.Client.OracleConnection.get_m_majorVersion()
at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
at MyApp.MyScheduler.AddSampleOperation(SampleOperation sampleOperation)
Это происходит именно тогда, когда я звоню, как:
_dbContext.SampleOperations.AsNoTracking().First(so => so.SampleOperationId == sampleOperation.SampleOperationId);
Чтобы было ясно,это не исключение NullReferenceException, возникающее с кодом, который я контролирую.Это происходит в клиентском коде Oracle и происходит только время от времени.Я могу воспроизвести одни и те же шаги несколько раз, и ошибка не произойдет, тогда в конце концов это произойдет.Я попытался удалить Oracle.ManagedDataAccess.Client из GAC, но это не помогло.
Я надеюсь, что кто-то еще видел эту ошибку.Я использую следующие версии от NuGet:
Oracle.ManagedDataAccess: 12.1.24160719
Oracle.ManagedDataAccess.EntityFramework: 12.1.2400
EntityFramework: 6.1.3
Может ли это быть что-то, что было исправлено в более поздней версии Oracle.ManagedDataAccess?