Tie*_*nCB 10 oracle entity-framework
我已经将Entity Framework 5用于基于Web的应用程序的Oralce数据库.有时(很少发生),出现错误"ORA-00933",但是当我重新启动webapp时,它会再次运行.这是日志:
System.Data.EntityCommandExecutionException:执行命令定义时发生错误.有关详细信息,请参阅内部异常 ---> Oracle.ManagedDataAccess.Client.OracleException:ORA-00933:在OracleInternal的OracleInternal.ServiceObjects.OracleCommandImpl.VerifyExecution(OracleConnectionImpl connectionImpl,Int32&cursorId,Boolean bThrowArrayBindRelatedErrors,OracleException&exceptionForArrayBindDML,Boolean&hasMoreRowsInDB,Boolean bFirstIterationDone)中未正确结束SQL命令.ServiceObjects.OracleCommandImpl.ExecuteReader(字符串的CommandText,OracleParameterCollection paramColl,的CommandType命令类型,OracleConnectionImpl connectionImpl,OracleDataReaderImpl&rdrImpl,的Int32 longFetchSize,Int64的clientInitialLOBFS,OracleDependencyImpl orclDependencyImpl,Int64的[] scnForExecution,Int64的[]&scnFromExecution,OracleParameterCollection&bindByPositionParamColl,布尔逻辑bBindParamPresent,Int64的&internalInitialLOBFS ,OracleException&exceptionForArrayBindDML,Boolean isDescribeOnly,Boolean isFromEF)at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader(Boolean requery,Boolean fillReques)在System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior行为)的Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteDbDataReader(CommandBehavior行为)中的t,CommandBehavior行为---内部异常堆栈跟踪结束---在系统System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute中的.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior behavior
1.GetResults(Nullable
)在系统上的System.Data.Objects.ObjectQuery 1 forMergeOption的[TResultType](ObjectContext context,ObjectParameterCollection parameterValues)来自 MOS.DAO.HisTreatment.HisTreatmentGet.GetById(Int64 id,HisTreatmentSO搜索)的1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable
System.Linq.Queryable.SingleOrDefault [TSource](IQueryable`1 source)的.Data.Objects.ObjectQuery 1 source
)
这是代码"HisTreatmentGet.GetById":
HIS_TREATMENT result = null;
try
{
bool valid = true;
using (var ctx = new AppContext())
{
var query = ctx.HIS_TREATMENT.AsQueryable().Where(p => p.ID == id);
...
result = query.SingleOrDefault();
}
}
catch (Exception ex)
{
....
}
return result;
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索,但没有解决方案.有人可以给我建议吗?
Oracle 的实体框架提供程序中存在错误。
似乎 Oracle.ManagedDataAccess.EntityFramework.SqlGen.SqlSelectStatement.Top_s 是并行查询借用的罪魁祸首。这应该是线程静态(快速破解)或移动到某些上下文状态(正确修复,例如到 SqlGenerator)。
https://community.oracle.com/thread/3728543
Oracle 支持部门没有答复。话虽如此,nuget 包有一个新版本:12.2.110。您可以尝试一下并检查问题是否已解决。
归档时间: |
|
查看次数: |
1002 次 |
最近记录: |