.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的主要内容,如果未能解决你的问题,请参考以下文章