.Net 核心支持查询 Vertica

Posted

技术标签:

【中文标题】.Net 核心支持查询 Vertica【英文标题】:.Net core support for querying Vertica 【发布时间】:2017-07-16 01:14:55 【问题描述】:

我想从 .Net Core 应用程序连接到 Vertica DB,但 Vertica.Data 包与 .Net Core 不兼容。一直在寻找另一个适用于 .Net 核心的软件包,但没有找到任何东西。 是否有任何其他解决方法可以从 .Net 核心应用程序查询 Vertica?

【问题讨论】:

有人可以帮忙吗? 【参考方案1】:

您可以在 .net core 2.1+ 中使用 HP Vertica 提供的 Nuget 中的 Vertica.Data 包,

在构建时显示警告

"Package Vertica.Data was restored using .NETFramework instead of target framework .NETCoreAPP"

但它工作正常,但我没有在生产中测试它。

使用它

using Vertica.Data.VerticaClient;

更新

在windows环境下可以使用,在linux环境下就不行了。

【讨论】:

在windows环境下部署可以,在linux环境下就不行了。 “Vertica.Data”最后一次更新是在 2016 年,它不包括 netstandard2.0+ 版本以完全兼容 .NET Core / .NET 5,后者通常在 Linux 上作为 docker 容器运行,其中“ Vertica.Data" 不起作用,因此接受答案很奇怪。【参考方案2】:

目前还没有与 .NET Core 兼容的 Vertica ADO.NET 连接器(针对 netstandard);您可以联系 Vertica 支持并询问他们是否对此有任何计划。

Vertica 有适用于 Windows 和 Linux 的 ODBC 驱动程序,但不幸的是 .NET Core 1.1 (netstandard 1.6) 还没有 ODBC 连接器。 根据https://github.com/dotnet/corefx/pull/15646 的说法,它计划用于 nestandard2.0(预计 2017 年第二季度的预览版)并已合并到开发分支中。

---更新---

System.Data.Odbc 已稳定发布,可在 Windows 和 Linux 上正常运行。

【讨论】:

感谢您提供详细信息。这也是我经过大量研究后发现的。 System.Data.Odbc 我也检查过它有效,但没有在生产中使用 @codemirror 我在 Linux (Docker) 上的生产环境中使用 System.Data.Odbc,它工作得很好。 当我在 Linux(Docker) 上使用 System.Data.Odbc 时会引发以下错误: System.DllNotFoundException: 需要最低版本 2.3.1 的依赖 unixODBC。无法加载共享库“libodbc.so.2”或其依赖项之一 @EliasGhali 绝对可以在 Linux(docker)上将 System.Data.Odbc 与 .NET Core 3.1 一起使用,它非常适合我。请确保您使用正确版本的 nuget 包:<PackageReference Include="System.Data.Odbc" Version="4.7" />

以上是关于.Net 核心支持查询 Vertica的主要内容,如果未能解决你的问题,请参考以下文章

.Net 核心微服务查询来自许多服务

.net 核心依赖注入是不是支持 Lazy<T>

ASP.NET 核心中是不是支持刷新令牌?

Asp.net 核心 - 实体框架核心 - 将附加数据添加到视图对象,同时保持它是可查询的

区域在 .net 核心中显示为查询字符串

415 不支持的媒体类型 asp.net 核心