问题标签 [oracle.manageddataaccess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
30 浏览

asp.net - 使用 EF 6.0 SaveChanges() 函数会导致错误“无法加载文件或程序集”oracle。manageddataaccessdtc,版本=4.122.19.1"

我使用Oracle.ManagedDataAccessnuget 数据包,我将项目发布到 IIS,一切正常,但如果我调用 EF 函数SaveChanges(),我会收到此错误:

无法加载文件或程序集 Oracle.ManagedDataAccessDTC,Version=4.122.19.1,Culture=neutral,PublicKeyToken=89b483f429c47342 或其依赖项之一,发现程序集清单定义与程序集引用不匹配。(来自 hresult:0x80131040 的例外)

我将目录Oracle.ManagedDataAccessDTC.dll中的发布文件夹中bin,但我仍然得到错误。

请给我一些建议!谢谢!

0 投票
2 回答
433 浏览

.net - Oracle.ManagedDataAccess 在 19.3 版本中如何处理 tnsname.ora?

使用Oracle.ManagedDataAccess.dll 12and 18,如果要使用tnsname.ora别名,则必须TNS_ADMIN使用相应的路径定义环境变量。

我刚刚发现该版本19能够在tnsname.ora没有此环境变量的情况下获取配置,但我不确定如何?

web.congthe和 the都不machine.config包含该环境变量。

注册表编辑器中似乎有一条路径,但是当我用错误的路径修改路径时,我的项目仍然有效。

在此处输入图像描述

根据我的测试,这里列出了哪些有效,哪些无效:

  • 19.3具有 Oracle.ManagedDataAccess 19.3(和更高级)的本地客户端:在没有TNS_ADMIN环境的情况下工作
  • 19.3具有 Oracle.ManagedDataAccess (和之前)的本地客户端18.6:没有TNS_ADMINEnv就无法工作
  • 带有 Oracle.ManagedDataAccess(所有版本)的本地客户端12.1:没有TNS_ADMINEnv就无法工作

所以我想知道为什么这个特殊案例有效?

Oracle.ManagedDataAccess 中还有返回使用tnsname.ora路径的方法吗?

谢谢,

0 投票
1 回答
255 浏览

.net - EntLib 4.1 中的 Oracle.ManagedDataAccess.Client 错误“连接字符串格式不正确”

我使用 Oracle.ManagedDataAccess.Client 并通过 Nuget 安装了 Oracle.ManagedDataAccess。这是 app.config 配置:

这是 C# 代码:

我卡在连接字符串上,因为它失败并出现错误:“连接字符串格式不正确”

0 投票
1 回答
20797 浏览

c# - FileNotFoundException:无法加载文件或程序集'System.Configuration.ConfigurationManager,

我正在尝试使用 ado.net 从 .net core 3.1 连接到 oracle 数据库,这是我的代码

但是当这个函数执行时,在第 2 行发生了以下异常

System.TypeInitializationException:'OracleInternal.Common.ProviderConfig' 的类型初始化程序引发异常

FileNotFoundException:无法加载文件或程序集“System.Configuration.ConfigurationManager,版本=4.0.2.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51”。该系统找不到指定的文件。**

谁能告诉我发生了什么??

0 投票
1 回答
3386 浏览

oracle - Oracle 客户端和 ODP.NET 版本兼容性

我们已将 Oracle 升级到 19C,并将 Oracle.ManagedDataAccess 包升级到 19.6。但是,当我们尝试在 Oracle 数据库 12 上打开我们的应用程序时,它会显示错误,因为某些机器仍然具有 Oracle 12(旧)数据库。有人可以与 Oracle 客户端分享 Oracle 数据提供程序 (ODP.Net) 兼容性详细信息吗?

0 投票
1 回答
136 浏览

c# - 将 Oracle.ManagedDataAccess.Client.OracleDataReader 中的行转储到在关闭连接中仍然存在的集合

我正在尝试编写一个简单的帮助函数,该函数使用Oracle.ManagedDataAccess.Core库连接到 Oracle 数据库,并返回行。

当与数据库的连接关闭时,返回的对象应该仍然存在。类似于以下内容。不确定会是什么。

0 投票
1 回答
374 浏览

c# - 与 DataAccess.Client.OracleConnection 共享 ManagedDataAccess.Client.OracleConnection 连接/会话/事务

在我的应用程序中,我使用的是具有public Oracle.ManagedDataAccess.Client.OracleConnection DbConn属性的 Repository 类。在我使用这个存储库的另一个类中,有一个特殊的用例,我需要使用OracleBulkCopy's 以便从 Access 文件中快速导入数据,不幸的是,Oracle Managed nuget 仍然不支持。因此,我需要实例化 a并基于该连接Oracle.DataAccess.Client.OracleConnection创建's。OracleBulkCopy但我想将整个过程保留在事务中,包括通过存储库连接和 'non-Managed' 所做的更改OracleConnection。我可以看到完成的唯一方法是将存储库中的底层连接/会话/事务“共享”Oracle.ManagedDataAccess.Client.OracleConnectionOracle.DataAccess.Client.OracleConnection. 这样的事情可能吗?

提前致谢。

0 投票
1 回答
31 浏览

c# - 为 Oracle 管理创建 c# 应用程序的先决条件

我正在尝试创建 ac# 应用程序来使用 Web 界面管理 oracle 数据库。我一直在使用 Oracle.ManagedDataAcccess.dll 进行常规数据库操作 (CRUD),但是我无法找到任何有关是否存在帮助执行数据文件、控制文件或重做日志特定操作的功能的信息,或者可能是连接到 RMAN 并从基于 Web 的应用程序中执行命令。

0 投票
0 回答
54 浏览

c# - C#,EF 6 - DBContext 未打开连接

我正在使用Oracle.ManagedDataAccess(v. 4.122.19.1) 和实体框架 (v. 6.0.0.0)。

我创建了一个像这样的简单上下文:

和测试方法:

我预计,在这种情况下,连接将自动打开,例如https://github.com/entityframeworktutorial/EF6-DBFirst-Demo,但测试失败。

有人可以向我解释为什么吗?

Connection.connection是一个有效的连接字符串,因为当我将测试方法更改为:

然后测试通过了。

0 投票
0 回答
60 浏览

oracle - OracleCommand 抛出在包方法中处理的异常

我有一个奇怪的问题,我正在使用 Dapper 的 ExecuteAsync 扩展调用 Oracle 包方法调用:

最初我在 Dapper GitHub 项目中发布了这个,但是在检查了扩展方法的代码之后,很明显异常是由 OracleCommand 抛出的,与 Dapper 本身无关,所以我不希望那里有任何反馈,也许一些嘲讽,我希望它不会在相应的回复中实现:-)。这个 Oracle 包方法内部有一个异常处理机制,它处理所有异常并在名为 p_err_msg 的 out 参数中返回任何错误:

从任何 Oracle IDE(SQL Developer、TOAD 等)调用 package 方法演示了预期的行为,不会引发异常,而是在 out 变量中返回错误消息。使用相同的参数为相同的方法调用 OracleConnection.ExecuteAsync 会导致在包方法中处理的异常被抛出给客户端。知道为什么会发生这种情况以及如何避免这种情况。它导致了一个问题,因为我们希望确保仅在我们无法执行该方法(连接问题)的任何情况下才抛出异常,而不是在抛出包方法内部的错误时抛出。