使用 PostgreSQL 用于 ASP.NET 的 ODBC 或 NpgSQL

发布于 2024-11-13 03:08:28 字数 296 浏览 2 评论 0原文

我有一个使用 postgreSQL 数据库的 ASP.NET 项目。我不知道哪种连接类型更好。在 ODBC 中,一方面我们有服务器资源管理器(拖放 gridview),另一方面它不是将应用程序层与逻辑层分开。请问 ODBC 或 NpgSQL 哪种连接类型更好?为什么?

关于我的项目的一些情况:

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

I have project in ASP.NET with postgreSQL database. I do not know what of connection type is better. On one side I in ODBC we have Server Explorer(drag and drop gridview) and on the other side it is not separate application layer from logic layer. Please what of connection type is better ODBC or NpgSQL and why?

Sometging about my project:

  • Application ASP.NET using master.page,
  • database PostgreSQL with 18 tables and 4 m:n constraints (think it is difficult),
  • application have to generate pdf, xml, etc...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小兔几 2024-11-20 03:08:28

一般来说,我会选择纯 .NET 解决方案而不是 ODBC。我对 PostgreSQL 的这些驱动程序都不熟悉,因此请谨慎接受此建议。一些“一般”论点是:

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

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

In general, I would choose the pure .NET solution over ODBC. I am not familiar with either of these drivers for PostgreSQL, so take this advice with caution. Some "general" arguments are:

  • Because .NET data providers are a newer technology than ODBC, they will as a general rule get more attention and updates than ODBC drivers. This, of course, may not apply in this case (maybe the PostgreSQL ODBC driver has a thriving developer community behind it). Barring that, though, it is more likely that problems you may encounter would be addressed in a more timely fashion in .NET data providers.
  • The client side stack is going to be a bit smaller if using the pure .NET data provider. I saw that Npgsql is a pure .NET solution. An ODBC driver, on the other hand, will have a deeper stack. A call has to go through the ODBC .NET provider, which then makes an unmanaged call to the ODBC driver manager, which then calls the PostgreSQL ODBC driver. Whether or not this would actually have an impact on performance would depend on the application and usage.
  • A pure .NET provider may be more efficient in that it is typically written specifically for a particular database server. In contrast, the ODBC .NET provider has to work with the ODBC driver manager and cannot make assumptions about the back end.

I reiterate that the above statements are general ones that may not apply in this specific case but are probably worth considering.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文