在 .netCore 库中,我想连接到 Oracle 数据库。我有什么办法可以做到这一点吗?
我已经尝试了 another SO post 上的建议,但它不起作用,也许从那以后被删除了?正如您在我的 project.json 中所见,我正在尝试使用“net461”。
我目前正在尝试通过老式的 ADO.Net 使用 Oracle.ManagedDataAccess.Client。我还知道 Oracle 还没有买断 .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。
我并不执着于任何特定的做事方式,我只是想要此时此刻最合理的选择。
最佳答案
Oracle 于 2018 年 1 月底发布的 Beta 版 .Net Core Managed 驱动程序 http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html . 文档中提到的支持平台现在是 Win 和 Linux。
Nuget:https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core
其他带有标准/即时 Oracle 客户端的旧替代品:
- 对于 .Net Core 2.0,我推荐使用 ericmend oracleClientCore-2.0:https://github.com/ericmend/oracleClientCore-2.0 .努盖特:dotNetCore.Data.OracleClient我在Win和Linux平台上使用成功。这是我的 small sample
- 或者 System.Data.OracleClient 也适用于 2.0 - 参见 @Owen邮政。但是我只在Win平台下测试过
- 对于 .Net Core >= 1.0,您可以使用非官方 LinqDan基于 Mono 的 Oracle 客户端的 .NET Core 的 Oracle 客户端 https://github.com/LinqDan/oracleclientcore 努盖特:Mono.Data.OracleClientCore .
我的 TestCore.csproj 作为最后一个选择:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Mono.Data.OracleClientCore" Version="1.0.0" />
</ItemGroup>
</Project>
我的程序.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();
}
}
}
}
关于c# - 如何从 .Net Core 连接到 Oracle 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41459631/