从 asp.net 核心连接到 Oracle 数据库
Connect to Oracle database from asp.net core
首先,我阅读了有关连接到 Oracle 数据库的其他帖子,不幸的是他们无法帮助我。我将描述我尝试过的内容,希望有人能指出正确的方向。
首先我尝试安装 ODTwithODAC122010 正如许多消息来源所说,但是这个给了我一些退出代码非零的进程。它说它成功了,但似乎没有任何改变。
接下来我尝试安装 ODTforVS2017_122010.exe 我有一个更新的 Visual Studio 专业版。它说安装成功。然而,这似乎没有像教程描述的那样添加任何选项。我的意思是应该有一些可见的东西;
visual studio 工具 -> 连接到数据库 -> Oracle 数据库,数据提供程序菜单应该有类似 Oracle for 的东西.. 不幸的是这没有出现..
所以我尝试连接到我的 visual studio 项目中的数据库,选择 .net 框架数据提供程序 for oracle。这里要求三个字段:服务器名称用户名和密码。我尝试填写它们,但无法连接。
对于我使用的服务器名称: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 returns:
"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,非常感谢您的建议和帮助!
目前没有 ODP.NET 对 .NET Core 的支持,它原定于去年发布,但是 ODP 推特帐户的消息超过 it's coming tweet 几周了以前。
您可以通过将项目从 .netcoreapp2 移动到 net461 或更高版本的目标框架来使当前版本正常工作,但这会从您的项目中删除跨平台支持。
要将您的项目移动到 .net461 或任何其他文件,请按照以下步骤操作:
- 编辑您的 csproj 文件并将
TargetFramework
替换为 net461
- 如果您有一个 Web 项目,请删除
Microsoft.AspNetCore.All
包并安装 Microsoft.AspNetCore
(应该下载其他依赖项)。
在问这个问题时,没有车手 Roy Sanchez 回答这个问题。几周后,该驱动程序在 oracle 站点上以 nuget 包的形式发布。
准确地说,
- 右键单击您的项目
- 转到管理 NuGet 包
- 搜索 Oracle.manageddataaccess.core。您将获得 Nuget 包 2.12.0-beta2 版本。添加它。
在页面中,如下导入访问oracle 类
使用 Oracle.ManagedDataAccess.Client;
这是 Oracle 数据访问提供程序的测试版,PROD 版预计将于 2018 年第三季度末推出。
首先,我阅读了有关连接到 Oracle 数据库的其他帖子,不幸的是他们无法帮助我。我将描述我尝试过的内容,希望有人能指出正确的方向。
首先我尝试安装 ODTwithODAC122010 正如许多消息来源所说,但是这个给了我一些退出代码非零的进程。它说它成功了,但似乎没有任何改变。
接下来我尝试安装 ODTforVS2017_122010.exe 我有一个更新的 Visual Studio 专业版。它说安装成功。然而,这似乎没有像教程描述的那样添加任何选项。我的意思是应该有一些可见的东西;
visual studio 工具 -> 连接到数据库 -> Oracle 数据库,数据提供程序菜单应该有类似 Oracle for 的东西.. 不幸的是这没有出现..
所以我尝试连接到我的 visual studio 项目中的数据库,选择 .net 框架数据提供程序 for oracle。这里要求三个字段:服务器名称用户名和密码。我尝试填写它们,但无法连接。 对于我使用的服务器名称: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 returns:
"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,非常感谢您的建议和帮助!
目前没有 ODP.NET 对 .NET Core 的支持,它原定于去年发布,但是 ODP 推特帐户的消息超过 it's coming tweet 几周了以前。
您可以通过将项目从 .netcoreapp2 移动到 net461 或更高版本的目标框架来使当前版本正常工作,但这会从您的项目中删除跨平台支持。
要将您的项目移动到 .net461 或任何其他文件,请按照以下步骤操作:
- 编辑您的 csproj 文件并将
TargetFramework
替换为 net461 - 如果您有一个 Web 项目,请删除
Microsoft.AspNetCore.All
包并安装Microsoft.AspNetCore
(应该下载其他依赖项)。
在问这个问题时,没有车手 Roy Sanchez 回答这个问题。几周后,该驱动程序在 oracle 站点上以 nuget 包的形式发布。
准确地说,
- 右键单击您的项目
- 转到管理 NuGet 包
- 搜索 Oracle.manageddataaccess.core。您将获得 Nuget 包 2.12.0-beta2 版本。添加它。
在页面中,如下导入访问oracle 类
使用 Oracle.ManagedDataAccess.Client;
这是 Oracle 数据访问提供程序的测试版,PROD 版预计将于 2018 年第三季度末推出。