使用PostgreSQL的ODBC或NpgSQL for ASP.NET

Edd*_*mer 2 asp.net postgresql odbc npgsql

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

关于我的项目:

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

Mar*_*ins 6

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

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

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