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

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

【问题讨论】:

  • 有人可以帮忙吗?

标签: .net asp.net-core vertica asp.net-core-webapi


【解决方案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" />
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
  • 2017-11-24
  • 1970-01-01
  • 2019-05-20
  • 2018-07-06
  • 1970-01-01
相关资源
最近更新 更多