如何使用 .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 跟踪它。
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/