在Oracle库中,我希望连接到.netCore数据库。我有没有办法做到这一点?
我已经尝试了以下建议
另一篇SO帖子
,但它不起作用,也许是因为被删除了?正如您在我的project.json中看到的,我正在尝试使用"net461“。
我目前正在尝试通过老式的ADO.Net使用Oracle.ManagedDataAccess.Client。我还知道甲骨文还没有买下.netCore连接器。但即使在那里我也不能让它工作,它很难让
System.Data
包括在内,每当我尝试添加它时,它都会出错。
我的project.json如下所示:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Oracle.ManagedDataAccess": "12.1.24160719",
},
"frameworks": {
"netstandard1.6": {
"imports": [
"dnxcore50",
"net461"
]
}
}
}这就是我当时正在尝试做的事情。
using Oracle.ManagedDataAccess.Client;
public class MyRepository
{
public string GetServerVersion()
{
var _db = new OracleConnection("User Id=myUser;Password=myPassword;Data Source=MyOracleConnection");
var serverVersion = _db.ServerVersion;
return serverVersion;
}
}然而,上面的代码没有编译,因为它没有System.Data,我正在努力导入它。
我并不执着于任何特定的方式来做这件事,
我只想要在这个时间点上最合理的选择。
..。
发布于 2018-10-03 01:01:04
Oracle发布了
.NET核心的官方数据提供程序
在nuget上。
下面是一个基本的示例来说明如何使用它:
using Oracle.ManagedDataAccess.Client;
public void Execute(string queryString, string connectionString)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleCommand command = new OracleCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}基本上,你可以像官方的.NET System.Data.SqlClient一样使用它(很容易找到在线教程),只需将代码SqlConnection中的任何地方替换为OracleConnection,将SqlCommand替换为OracleCommand即可。
发布于 2017-08-31 04:26:32
甲骨文于2018年1月底发布测试版.Net核心托管驱动程序
http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html
..。文档中支持的平台现在是Win和Linux。
Nuget:
https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core
具有standart/instant Oracle客户端的其他旧的替代方案:
对于.Net核心2.0 i
推荐
使用
ericmend
oracleClientCore-2.0:
https://github.com/ericmend/oracleClientCore-2.0
..。Nuget:
dotNetCore.Data.OracleClient
我在Win和Linux平台上成功地使用了它。这是我的
小样本
或者,System.Data.OracleClient也适用于2.0 -请参阅
@Owen
post。但我只在Win平台上测试它
对于.Net核心>= 1.0,您可以使用非官方的
LinqDan
基于客户端的.NET核心Oracle客户端
https://github.com/LinqDan/oracleclientcore
Nuget:
Mono.Data.OracleClientCore
..。
我的上一个备选方案的TestCore.csproj:
Exe
netcoreapp1.0我的program.cs:
using System;
using System.Data.OracleClient;
namespace TestCore
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Starting.\r\n");
using (var _db = new OracleConnection("User Id=myUser;Password=myPassword;Data Source=MyOracleConnection"))
{
Console.WriteLine("Open connection...");
_db.Open();
Console.WriteLine( "Connected to:" +_db.ServerVersion);
Console.WriteLine("\r\nDone. Press key for exit");
Console.ReadKey();
}
}
}
}发布于 2017-05-26 15:40:18
甲骨文计划在2017年底左右在微软.NET核心上认证ODP.NET,托管驱动程序。
甲骨文打算在Windows操作系统和Oracle Linux的.NET核心上支持托管ODP.NET。Managed ODP.NET可能支持其他操作系统。Oracle将继续评估对其他Linux发行版的支持,并将在未来宣布认证列表中的新成员。甲骨文不打算在早于微软.NET Core2.0的版本上进行认证。.NET Core2.0包含许多特性,这些特性使得在框架上进行托管ODP.NET认证成为可能
摘自本文:
http://www.oracle.com/technetwork/topics/dotnet/tech-info/odpnet-dotnet-core-sod-3628981.pdf
更新:测试版发布
ODP.NET核心
https://stackoverflow.com/questions/41459631
复制相似问题