繁体   English   中英

从asp.net核心连接到Oracle数据库

[英]Connect to Oracle database from asp.net core

首先,我已经阅读了有关连接到Oracle数据库的其他帖子,遗憾的是他们无法帮助我。 我将描述我所尝试的内容,并希望有人可以指出我正确的方向。

首先我尝试安装ODTwithODAC122010,正如许多消息来源所说的那样,但是这个给了我一些退出非零退出代码的过程。 它说它很成功,但似乎没有任何改变。

在我旁边尝试安装ODTforVS2017_122010.exe我有一个更新的Visual Studio专业人员。 它说安装是成功的。 然而,这似乎没有像教程描述那样添加任何选项。 有了这个,我的意思是应该有一些可见的东西;

visual studio工具 - >连接到数据库 - > Oracle数据库,数据提供者菜单应该有类似Oracle的东西..这不显示不幸...

所以我尝试连接到我的visual studio项目中的数据库,为oracle选择.net框架数据提供程序。 这里要求三个字段:服务器名称用户名和密码。 我尝试填写它们但它无法连接。 对于我使用的服务器名称:IPADDRESS:PORT / SERVICENAME

之后,我放弃了通过visual studio连接到数据库的希望(我可以使用oracle SQL开发人员连接到数据库)。

然后我安装以下nuget包: - 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,您的建议和帮助将不胜感激!

确切地说,

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

    使用Oracle.ManagedDataAccess.Client;

这是Oracle数据访问提供商的测试版,PROD版本应该在2018年第三季度末提供。

目前没有针对.NET Core的ODP.NET支持,它假设将在去年发布,但几周之前没有新闻,而且它正在推出来自ODP 推特账户的推文

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

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

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

在提出这个问题时,没有司机Roy Sanchez回答这个问题。 几个星期后,驱动程序在oracle网站上发布,并作为一个nuget包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM