首页 > 数据库 >使用EFcore连接Oracle数据时出现的错误及解决方案(Oracle版本指定错误)

使用EFcore连接Oracle数据时出现的错误及解决方案(Oracle版本指定错误)

时间:2022-12-16 01:11:31浏览次数:48  
标签:11 版本 错误 EntityFrameWorkCore EFcore 6.0 Oracle Microsoft

使用EFcore连接Oracle数据时出现的错误及解决方案(Oracle版本指定错误)

程序环境

1,DotNet版本 .net 6.0

2,EFcore版本:

  • Microsoft.EntityFrameWorkCore 6.0.11
  • Microsoft.EntityFrameWorkCore.Tools 6.0.11
  • Microsoft.EntityFrameWorkCore.Design 6.0.11
  • Microsoft.EntityFrameWorkCore.Relational 6.0.11
  • Microsoft.EntityFrameWorkCore.SqlServer 6.0.11
  • Oracle.EntityFrameWorkCore 6.21.61

代码内容

 var result =await _db.xxxx.AsNoTracking().FirstOrDefaultAsync(m => m.USERNO == userNo);

报错内容

ORA-00933:SQL命令未正确结束

故障原因

经过搜索发现可能因为与oracle数据库版本有关,经过查询发现Oracle版本是11g,而EFcore内指定的版本为 12g,因此导致FirstFirstAsyncFirstOrDefaultFirstOrDefaultAsync 无法使用。

解决方案

//在dbcontext中使用UseOracleSQLCompatibility("11")指定oracle版本 原先为12
 dbContextOptionsBuilder.UseOracle("User Id=user;Password=user;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))", b => b.UseOracleSQLCompatibility("11"));

标签:11,版本,错误,EntityFrameWorkCore,EFcore,6.0,Oracle,Microsoft
From: https://www.cnblogs.com/hy999/p/ef6-oracle-versionerror.html

相关文章

  • Microsoft.Practices.EnterpriseLibrary连接Oracle
    icrosoftEnterpriseLibrary用起来也是挺不错的,对于习惯自己写sql语句的开发者们,这个应该挺好的。下面以连接Oracle为例简单介绍下如何连接数据库。首先下载MicrosoftEnt......
  • 解决ORM错误:django.db.utils.IntegrityError: (1452, 'Cannot add or update a child
    #修改settings.pyDATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'test','HOST':'127.0.0.1','POR......
  • 一:OEL6.9x64 安装Oracle11gR2
    标签(空格分隔):Oracle系列一:系统环境介绍系统:oraclelinux6.9x64主机名:cat/etc/hosts----172.16.10.41flyfish41172.16.10.42flyfis......
  • 15.Oracle事物
    简介oracle事物主要用于保持oracle数据库的数据一致性,oracle事物可以看成一个SQL块的整体,只要某一个SQL语句错误,那么事物中的SQL被看做一个整体,一起回滚,要么就是一起成功全......
  • 10.Oracle存储过程
    1.Oracle存储过程语法结构create[orreplace]procedure过程名(p1in|outdatatype,p2in|outdatatype,...pnin|outdatatype)is....--声明部......
  • 9.Oracle创建函数
    1.Oracle创建函数Oracle创建函数是通过PL/SQL自定义编写的,通过关键字function按照自己的需求把复杂的业务逻辑封装进PL/SQL函数中,函数提供一个返回值,返回给使用者。组成部......
  • 11.Oracle游标
    Oracle游标简介:Oracle游标是通过关键字CURSOR的来定义一组Oracle查询出来的数据集,类似数组一样,把查询的数据集存储在内存当中,然后通过游标指向其中一条记录,通过循环游标达......
  • svn常见错误汇总
    comment中的换行。把换行去掉就可以了 ......
  • oracle 建表时表空间的一些参数pctfree initrans maxtrans storage的含义
    createtableX_SMALL_AREA(idx_idNUMBER(20)notnull,pss_idx_idNUMBER(20),update_logVARCHAR2(512),update_dateDATE,constrai......
  • 致命错误:没有用于主机"192.168.1.112",用户"postgres"
      安装postgresql9.2后,QT连接数据库:QSqlDatabasedb=QSqlDatabase::addDatabase("QPSQL","test");db.setDatabaseName("sqlscada");//db.setHostName("127.0.0.1");d......