首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从.Net核心连接到Oracle数据库连接

如何从.Net核心连接到Oracle数据库连接
EN

Stack Overflow用户
提问于 2017-01-04 16:50:15
回答 9查看 66K关注 0票数 24

在Oracle库中,我希望连接到.netCore数据库。我有没有办法做到这一点?

我已经尝试了以下建议

另一篇SO帖子

,但它不起作用,也许是因为被删除了?正如您在我的project.json中看到的,我正在尝试使用"net461“。

我目前正在尝试通过老式的ADO.Net使用Oracle.ManagedDataAccess.Client。我还知道甲骨文还没有买下.netCore连接器。但即使在那里我也不能让它工作,它很难让

System.Data

包括在内,每当我尝试添加它时,它都会出错。

我的project.json如下所示:

代码语言:javascript
复制
{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "Oracle.ManagedDataAccess": "12.1.24160719",
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": [
        "dnxcore50",
        "net461"
      ]
    }
  }
}

这就是我当时正在尝试做的事情。

代码语言:javascript
复制
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,我正在努力导入它。

我并不执着于任何特定的方式来做这件事,

我只想要在这个时间点上最合理的选择。

..。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2018-10-03 01:01:04

Oracle发布了

.NET核心的官方数据提供程序

在nuget上。

下面是一个基本的示例来说明如何使用它:

代码语言:javascript
复制
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即可。

票数 9
EN

Stack Overflow用户

发布于 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:

代码语言:javascript
复制
Exe
    netcoreapp1.0

我的program.cs:

代码语言:javascript
复制
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();
            }           
        }
    }
}
票数 13
EN

Stack Overflow用户

发布于 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核心

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41459631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档