c# - 如何从 .Net Core 连接到 Oracle 数据库连接

标签 c# oracle asp.net-core database-connection

在 .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 客户端的旧替代品:

我的 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/

相关文章:

c# - 使用 CSExeCOMServer 如何在 VS C++ 中接收事件

sql - Oracle 数据库使用 SQL 检查保留

c# - 如何在 ASP.NET Core 3 预览版中使用 Lamar 2?

c# - 为什么 Convert.ToDouble 将我的值更改为 1000 倍?

c# - XML 签名适用于随机 RSA key ,但不适用于证书中的 key

oracle - 如何在 oracle 中将 select with if 条件与不同的表一起使用,而不是编写函数或存储过程?

asp.net-mvc - 由于请求正文太大,大文件上传到 ASP.NET Core 3.0 Web API 失败

caching - 内存缓存 GetOrCreate 和 MemoryCacheEntryOptions

c# - 如何读取复制到 ASP .net 输出目录中的文件?

java - 从 Java 中的 Oracle 过程获取异常