当前位置: 首页 > 知识库问答 >
问题:

带有Oracle自治数据库的EF Core脚手架

华甫
2023-03-14

很好奇是否有人使用Oracle Cloud的自治数据库产品(不是本地Oracle DB)成功为EF Core完成了数据库脚手架。棘手的部分似乎是连接字符串。亚行现在需要使用钱包下载,我不确定如何处理。

Oracle 的 ODP.Net 示例显示了一些用于配置数据提供html" target="_blank">程序的特殊配置命令。但是,这些命令在使用 Scaffold-DbContext 时似乎不可用。将所需文件放置在与数据连接库相同的位置的想法听起来很棒,但 NuGet 库似乎不会保留,并且仅作为生成过程的一部分进行部署。他们关于连接到 ADB 的博客文章建议重写连接字符串以使用似乎不支持的轻松连接格式。

他们有一篇关于将 SSRS 连接到 ADB 的无关帖子,该帖子为数据提供程序提供了一些命令行配置,我还没有尝试过,因为我不确定它是否有效,但似乎它至少在找出某种解决方案方面可能有用。

.NET Core/EF Core 版本是 3.1.9。

我尝试过一些变化...(用{}表示密文信息的占位符)

dotnet ef dbcontext scaffold "User Id={uname};Password={pwd};
Data Source={(description...) from tnsnames.ora}" Oracle.EntityFrameworkCore

结果:请求超时

dotnet ef dbcontext scaffold "User Id={uname};Password={pwd};
Data Source={tcps://... from blog}" Oracle.EntityFrameworkCore

结果:无效的连接字符串

dotnet ef dbcontext scaffold "User Id={uname};Password={pwd};
Data Source={host}:{port}/{service_name}" Oracle.EntityFrameworkCore

结果:连接服务器失败

如果有人对此有任何智慧可以分享,我将不胜感激。

共有2个答案

李耀
2023-03-14

还有一种不使用钱包的替代方法。

在这个链接中,没有使用TLS的钱包的oracle自治数据库有一个待办事项,可以将自治数据库更改为使用TLS,而不是mTLS和钱包。

更改数据库后,只需使用

dotnet ef dbcontext scaffold "Data Source=(description...);User Id=ADMIN;Password=PASSWORD" Oracle.EntityFrameworkCore
姚俊材
2023-03-14

想通了。

    < li >将wallet.sso、sqlnet.ora和tnsnames.ora复制到您的项目根目录中 < li >从tnsnames.ora获取数据源名称-您通常会看到三个选项,一个用于{数据库名称}_high,一个用于{数据库名称}_low,一个用于{数据库名称}_medium。请参考Oracle的文档了解它们之间的区别,但是_high对我来说很好。 < li >执行您的脚手架命令。下面显示了一个使用< code > dot net ef db context scaffold 的基本示例,其中dbname为TEST,用户id为ADMIN,密码为PASSWORD
dotnet ef dbcontext scaffold "Data Source=TEST_high;User Id=ADMIN;Password=PASSWORD" Oracle.EntityFrameworkCore
 类似资料:
  • 问题内容: 我正在使用oracle数据库9ir2,我需要将某些表转换为具有自定义格式标签的xml文件。 例如:我想从emp表的某些列中生成XML,然后生成一个名为“ myxmlfile.xml”的文件,如下所示: 如何使用上面的标签生成自定义XML文件,以及每次用户需要这样做时,换句话说,通过使用pl / sql“按用户请求”,如何使用oracle XML函数输出自定义的所需标签? 如何将xmlt

  • 本文向大家介绍oracle数据库导入.dmp脚本的sql 语句,包括了oracle数据库导入.dmp脚本的sql 语句的使用技巧和注意事项,需要的朋友参考一下 一、更改数据库管理员sys/system密码 1、运行到C盘根目录 2、输入:SET ORACLE_SID = 你的SID名称 3、输入:sqlplus /nolog 4、输入:connect /as sysdba 5、输入:altre u

  • 本文向大家介绍Oracle中手动删除数据库教程,包括了Oracle中手动删除数据库教程的使用技巧和注意事项,需要的朋友参考一下 在很多情况下,或无法使用dbca工具的时候,我们需要手动来删除数据库。对此,可以借助drop database命令来实现,下面的描述中给出手动删除数据库。 的具体步骤,包含文件系统数据库以及ASM数据库。环境:Oracle Enterprise Linux 5.4 + O

  • 问题内容: 我已经安装了 Python 3.4.0 版, 并且希望使用MySQL数据库进行项目。我下载并尝试安装 MySQLdb ,但对于此版本的Python而言并不成功。有什么建议可以解决此问题并正确安装吗? 问题答案: MySQLdb不支持Python 3,但它不是唯一的Python MySQL驱动程序。 mysqlclient本质上是MySQLdb的一个分支,其中合并了Python 3支持(

  • 问题内容: 我想在ala SQL Server列中实现标识或自动递增值: 如何才能做到这一点? 问题答案: 正如Orbman所说,实现此目标的标准方法是使用序列。大多数人也将其与插入触发器结合在一起。因此,当插入没有ID的行时,触发器将触发以从序列中为您填写ID。 这是在Oracle中使用触发器的少数情况之一。