C#.NET + PostgreSQL

akd*_*dom 52 .net c# postgresql

我正在研究一个项目,该项目使用C#.NET(坐在Windows框中)作为主要语言,PostgreSQL作为后端数据库(后端位于Linux机器上).我听说ODBC.NET允许轻松集成这两个组件.

有没有人有实际设置C#和PostgreSQL一起工作的经验?如果是这样,你有什么建议,如何去做,你找到的问题,等等?

jal*_*com 56

我正在使用Npgsql2组件使用C#和Postgres ,它们工作得很快,我建议你.

您可以从https://github.com/npgsql/Npgsql/releases下载

注意:如果您想要一个适用于任何数据库的应用程序,您可以使用DbProviderFactory类并使用IDbConnection,IDbCommand,IDataReader和/或IDbTransaction接口进行查询.

  • 仅供参考:官方不鼓励使用这些接口,相反,微软希望您使用“System.Data.Common”中的抽象基类。它根本没有记录,但似乎在 .NET2.0 版本发布时,MS 在内部弃用了这些接口,转而使用基类,而没有通过其“Obsolete”属性进行通信。[Github 上的这个问题](https://github.com/dotnet/corefx/issues/3480) 是关于 API 兼容性的有趣读物:-) (2认同)

Str*_*das 13

Npgsql - PostGreSQL的.Net Provider - 是一个出色的驱动程序.如果你使用了更传统的ADO.NET框架,那么你真的很幸运.我有连接到Oracle的代码,它看起来几乎与PostGreSQL连接完全相同.更容易从Oracle过渡并重用脑细胞.

它支持调用SQL时要执行的所有标准操作,但它也支持调用函数(存储过程).这包括返回参考游标.文档编写得很好,并提供了有用的示例,而没有得到哲学或晦涩难懂.从文档中窃取代码,它将立即生效.

Francisco Figueiredo,Jr和团队在这方面做得很好.
它现在可以在Github上找到.
https://github.com/franciscojunior/Npgsql2

更好的信息站点是:http: //npgsql.projects.postgresql.org/

阅读文档! http://npgsql.projects.postgresql.org/docs/manual/UserManual.html


Dav*_*itt 11

https://www.nuget.org/packages/linq2db.PostgreSQL/上有一个PostgreSQL的Linq提供程序.