.net - 什么时候应该使用 Odbc、OleDb、SQLClient?有什么权衡取舍

标签 .net database odbc oledb sqlclient

我从一个 SQLServer 数据库开始。所以我似乎应该使用 System.Data.SqlClient 命名空间。但是,我们有可能关闭我们的 SqlServer 数据库并转到 MySql 或 Oracle。出于这个原因,我提出了一套关于我们的 .Net 应用程序如何与数据库通信的标准,以便将来在需要时更容易迁移到不同的数据库系统。

标准如下:

  1. 尽可能使用 ORM(例如 NHibernate)(没有 LINQ,因为它只是 支持SqlServer,但是呢 Entity Framework 及其支持 Oracle 和 MySql?)
  2. 如果 ORM 有点过分,则使用参数化 SQL 查询。
  3. 仅将存储过程用于长时间运行或复杂的操作 需要在 数据库。

这让我想到了我的手头的主要问题。 我应该使用哪个命名空间来编写我的 DAL?

在我看来,选择是在 System.Data.ODBCSystem.Data.OleDB 之间:

  • 权衡取舍是什么?
  • 一个比另一个更受欢迎吗?
  • 您对前 3 个标准有何看法?

最佳答案

系统.Data.SQLClient

仅连接到 SQL Server 2000 及更高版本,但连接到这些数据库时您将获得最佳性能。

System.Data.OledbClient

连接到 SQL 6.5

OLEDBClient 使您能够连接到其他数据库,如 ORACLE 或 Access。但是对于使用 SQL Server,您将使用 SQLClient 获得更好的性能。

注意:为了连接ORACLE,微软也有ORACLEClient。

System.Data.ODBCClient

仅使用 ODBC 驱动程序连接到遗留数据库。 (例如 MS Access 97。)

Original source

关于.net - 什么时候应该使用 Odbc、OleDb、SQLClient?有什么权衡取舍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937083/

相关文章:

c# - Npgsql参数化语句

php - Yii 框架 : No Database selected

php - MySQL 查询 WordPress 数据库

mysql - "Too few parameters"尝试连接到 R 中的 Microsoft Access 数据库

sql-server - 服务器对象在 SQL Server Management Studio 中不可用

asp.net - SYBASE ODBC .Net 核心

c# - Azure Functions 无法再创建 .NET Framework 运行时

.net - 匿名类型集合?

c# - JSON 和 XML 的独立 Web 服务?

.net - 以日期作为迭代器的 For 循环