使用PostgreSQL的ODBC或NpgSQL for ASP.NET

时间:2011-06-02 18:11:17

标签: asp.net postgresql odbc npgsql

我在ASP.NET中使用postgreSQL数据库进行项目。我不知道哪种连接类型更好。一方面我在ODBC中有Server Explorer(拖放gridview),另一方面它不是逻辑层的独立应用层。请问哪种连接类型更好ODBC或NpgSQL?为什么?

关于我的项目:

  • 使用master.page,
  • 的应用程序ASP.NET
  • 数据库PostgreSQL有18个表和4 m:n个约束(认为很难),
  • 应用程序必须生成pdf,xml等...

1 个答案:

答案 0 :(得分:6)

一般来说,我会选择基于ODBC的纯.NET解决方案。我对PostgreSQL的这些驱动程序都不熟悉,所以请谨慎使用这个建议。一些“一般”论点是:

  • 由于.NET数据提供程序是比ODBC更新的技术,因此它们通常会比ODBC驱动程序获得更多关注和更新。当然,这可能不适用于这种情况(也许PostgreSQL ODBC驱动程序背后有一个蓬勃发展的开发人员社区)。但是,除此之外,您可能遇到的问题更有可能在.NET数据提供商中以更及时的方式得到解决。
  • 如果使用纯.NET数据提供程序,客户端堆栈将会更小一些。我看到Npgsql是一个纯.NET解决方案。另一方面,ODBC驱动程序将具有更深的堆栈。调用必须通过ODBC .NET提供程序,然后对ODBC驱动程序管理器进行非托管调用,然后调用PostgreSQL ODBC驱动程序。这是否会对性能产生实际影响取决于应用程序和使用情况。
  • 纯.NET提供程序可能更高效,因为它通常是专门为特定数据库服务器编写的。相反,ODBC .NET提供程序必须使用ODBC驱动程序管理器,并且不能对后端进行假设。

我重申,上述陈述是一般性陈述,可能不适用于这一具体案件,但可能值得考虑。