1

指数数组的边界之外。在 OracleInternal.I18N.UTF16ConvUtility.GetRemainingBytes

每次都发生无法解释的错误,网上没有任何关于它的信息

 var job = db.Jobs.FirstOrDefault(x => !x.IsDone);

原因

System.IndexOutOfRangeException: Index was outside the bounds of the array. at OracleInternal.I18N.UTF16ConvUtility.GetRemainingBytes(Int32 numBytesToRead, Byte[] buffer1, Int32 offset1, Int32 buffer1Bytes, IList`1 bytes, Int32& currSegIndex, Int32& continuationOffset, Byte[] dstBuffer) at OracleInternal.I18N.UTF16ConvAL16UTF16.ConvertBytesToChars(IList`1 bytes, Int32 bytesOffset, Int32 bytesCount, Char[] chars, Int32 charOffset, Int32& charCount, Boolean bUseReplacementChar) at OracleInternal.I18N.Conv.ConvertBytesToString(IList`1 bytes, Int32 bytesOffset, Int32 bytesCount, Char[] chars, Boolean bUseReplacementChar) at OracleInternal.I18N.Conv.ConvertBytesToString(IList`1 bytes, Char[] chars, Boolean bUseReplacementChar) at OracleInternal.ServiceObjects.OracleClobImpl.GetCompleteClobData(Int32 currentRow, Int32 columnIndex, OracleConnectionImpl connImpl, Byte[] lobLocator, DataUnmarshaller dataUnmarshaller, TTCLobAccessor lobAccessor, OracleClobImpl& oraClobImpl) at Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i) at System.Data.Entity.Core.Common.Internal.Materialization.Shaper.ErrorHandlingValueReader`1.GetUntypedValueDefault(DbDataReader reader, Int32 ordinal) at System.Data.Entity.Core.Common.Internal.Materialization.Shaper.ErrorHandlingValueReader`1.GetValue(DbDataReader reader, Int32 ordinal) at lambda_method(Closure , Shaper ) at System.Data.Entity.Core.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet) at lambda_method(Closure , Shaper ) at System.Data.Entity.Core.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper) at System.Data.Entity.Core.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext() at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[TResult](IEnumerable`1 sequence) at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot) at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression expression) at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](Expression expression) at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source, Expression`1 predicate) at XX.XX.Program.Main(String[] args) in C:\XXX\Program.cs:line xx

职位类别

  public class Job
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public string SomeClob { get; set; }

        [Index]
        public bool IsDone { get; set; }


    }
4

1 回答 1

0

您应该在 ODP.NET Oracle 论坛上发布此内容,以及一个简单的重现。它看起来像一个提供程序错误。

https://community.oracle.com/community/database/developer-tools/windows_and_.net/odp.net

于 2017-07-20T20:16:25.637 回答