You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6 Oracle数据库优先Scaffold遇ORA-12154错误求解

解决ORA-12154: TNS无法解析连接标识的问题

错误原因

你执行Scaffold命令时使用的连接字符串指定了Data Source=MB3,但本地Oracle客户端未配置对应的TNS别名,导致无法解析该连接标识。而你在appsettings.json中使用的是完整TNS描述字符串,因此应用本身的连接逻辑正常,但Scaffold命令因未配置的别名触发了错误。

解决方法

方法1:在Scaffold命令中使用完整TNS描述字符串

直接复用appsettings.json中的完整连接字符串,摆脱对本地TNS配置的依赖:

Scaffold-DbContext "User Id=msdb;Password=1234;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.100.8.187)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MB3)))" Oracle.EntityFrameworkCore -OutputDir Model -Tables customer,student

方法2:配置本地TNS别名

若希望继续使用Data Source=MB3的简化写法,需在本地配置TNS别名:

  1. 找到Oracle客户端安装目录下的tnsnames.ora文件,通常路径为Oracle安装路径\network\admin\tnsnames.ora
  2. 在文件中添加以下配置节点:
MB3 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.8.187)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MB3)
    )
  )
  1. 保存文件后,重新执行你原来的Scaffold命令即可。

额外注意事项

  • 确保Oracle.EntityFrameworkCore版本与Oracle 11g兼容,建议使用3.x或5.x版本,较新版本可能不再支持Oracle 11g
  • 执行Scaffold命令时,确认Visual Studio包管理器控制台的"默认项目"已选中你的ASP.NET Core项目

内容的提问来源于stack exchange,提问作者n.e

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:35:46