从asp.net core连接到Oracle数据库

5

首先,我已经阅读了其他有关连接到 Oracle 数据库的帖子,但遗憾的是它们不能帮助我。我将描述我尝试过的内容,希望有人能指导我正确的方向。

首先,我尝试安装 ODTwithODAC122010,因为许多来源都在说这个,但这个给了我一些进程以非零退出代码结束的错误。它说安装成功,但似乎没有任何改变。

接下来,我尝试安装 ODTforVS2017_122010.exe,我有一个更新的 Visual Studio professional。它说安装成功,但是好像没有像教程中描述的那样添加任何选项。这意味着应该在 visual studio 工具->连接到数据库->Oracle 数据库,数据提供程序菜单中应该有类似于 Oracle for.. 的选项。不幸的是,这并没有显示出来。

因此,我尝试在我的 Visual Studio 项目中选择 .net 框架数据提供程序来连接数据库。这里会要求填写三个字段:服务器名称、用户名和密码。我尝试填写了它们,但无法连接。 对于服务器名称,我使用的是 IPADDRESS:PORT/SERVICENAME

之后,我放弃了通过 Visual Studio 连接到数据库的希望(我可以使用 Oracle SQL Developer 连接到数据库)。

然后我安装了以下 nuget packages: - Oracle.ManagedDataAccess - System.Configuration.ConfigurationManager - System.Security.Permissions - System.Security.Principal

并编写了一段连接到数据库的代码,例如:

using(OracleConnection connect = new OracleConnection(ConnectionDetails.returnConnectionString()))
{
    connect.Open();
    Console.WriteLine("did it work?" + connect.ServerVersion);
}

returnConnectionString返回:

"User Id=MYID;Password=MYPASSWORD;Data Source=IPADDRESS:PORT/SERVICENAME"

很不幸,当我尝试运行这段代码时,我遇到了一个找不到ExecutionContext.cs的错误。这是在connect.open()处发生的。

我正在以下位置启动此代码:

    public static void Main(string[] args)
    {
        var a = new DatabaseConnector();
        a.test();
        BuildWebHost(args).Run();
    }

作为最后的话,我想明确表明我正在使用ASP.NET Core,非常感谢你们的建议和帮助!
3个回答

7

准确来说,

  1. 右键单击您的项目
  2. 转到管理 NuGet 包
  3. 搜索 Oracle.manageddataaccess.core。您将获得 Nuget 包 2.12.0-beta2 版本。添加它。
  4. 在页面中,如下导入以访问 Oracle 类

    using Oracle.ManagedDataAccess.Client;

这是 Oracle 数据访问提供程序的 beta 版本,生产版本预计将在2018年第三季度末发布。


1

目前还没有针对.NET Core的ODP.NET支持,去年应该发布了,但除了ODP twitter账户在几周前发布了即将到来的推文外,没有任何消息。

您可以通过将项目从.netcoreapp2移动到net461或更高版本的目标框架来使当前版本正常工作,但这将从您的项目中删除跨平台支持。

为了将项目移动到.net461或任何其他版本,请按照以下步骤操作:

  1. 编辑您的csproj文件,并将TargetFramework替换为net461
  2. 如果您有一个Web项目,则删除Microsoft.AspNetCore.All包并安装Microsoft.AspNetCore(它会下载其他依赖项)。

0

在提出这个问题的时候,Roy Sanchez 没有回答。几周后,该驱动程序已在 Oracle 网站上发布,并作为 NuGet 包提供。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接