odbc - AWS RedShift - .NET Core(ODBC 支持?)

标签 odbc .net-core amazon-redshift .net-standard

如何使用 .NET Core 连接和运行针对 AWS RedShift 的查询?代码示例请。我已经阅读了 AWS 文档和 .Net Core 文档,但没有运气。

最佳答案

这个答案是针对特定时间点的,不会过时......

EntityFramework Core 项目是我最关注的项目。缺少 ODBC 是众所周知的,特别是对于那些想要连接到 Oracle 的人。目前,您可能需要为 .NET Core fork 一个 Oracle 客户端并根据需要进行修改。

我在快速谷歌搜索后找到了这些项目,现在可能对你有帮助......

- https://github.com/LinqDan/oracleclientcore
- https://github.com/LinqDan/Mono.Data.OdbcCore

从长远来看,您需要关注这两个 GitHub 问题,它们正在为 EntityFramework Core 和 .NETStandard API 跟踪它。

  • https://github.com/dotnet/corefx/issues/13035
  • https://github.com/aspnet/EntityFramework/issues/7432

  • 2017 年 6 月 23 日更新:

    现在可以通过 Npgsql.EntityFrameworkCore.PostgreSQL NuGet 包和关联的 Entity Framework Core 包。显然,PostgreSQL 团队已经厌倦了等待 ODBC 支持(在最新的 netstandard2.0 中仍然不可用)并使用 netstandard 编写了他们自己的驱动程序 - 早在 11 月的时间范围内。 getting started npgsql 网站上的页面涵盖了它在旧 JSON 项目格式中的用法 - 但列出的依赖项仍然有效。

    以下是您将如何使用该软件包...
    using (var conn = new NpgsqlConnection("Host=myserver;Username=mylogin;Password=******;Database=music"))
    {
        conn.Open();
        using (var cmd = new NpgsqlCommand())
        {
            cmd.Connection = conn;
    
            cmd.CommandText = "SELECT name FROM artists";
            using (var reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    Console.WriteLine(reader.GetString(0));
                }
            }
        }
    }
    

    使用此驱动程序时要记住的一件事 - 它是为 PostgreSQL 而不是 Redshift 编写的。虽然 Redshift 基于 PostgreSQL,但它的底层引擎更像是 Cassandra。结果,亚马逊不得不在开发中做出一些选择,以放弃 PostgreSQL 支持的某些东西——例如 SQL 变量。因此,对于在其他 Entity Framework 实现中可能习惯的某些事情,您将获得相当有限的体验。只要您继续使用直接访问 *Connection、*Command 和 DataReader 类并编写自己的 SQL,就应该没问题。

    关于odbc - AWS RedShift - .NET Core(ODBC 支持?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947828/

    相关文章:

    java - "Data source name not found and no default driver"

    c# - 填充数据表并丢失第一行

    sql - 使用多个模式进行查询 - Dbeaver

    amazon-web-services - 如何为EMR实例中的 Spark Redshift 正确提供凭据?

    java - 需要帮助将 awt 应用程序与 MS Access 数据库连接

    sql - 创建自定义 ODBC 驱动程序

    c# - 在 Polly 重试尝试中获取完整的 URI?

    c# - Asp.net core 3.0 - 静态文件不加载

    asp.net-core - 如何在_Layout.cshtml共享Razor页面中添加配置设置

    amazon-redshift - 临时表上的 distkey 和 sortkey - Redshift