我从一个 SQLServer 数据库开始。所以我似乎应该使用 System.Data.SqlClient
命名空间。但是,我们有可能关闭我们的 SqlServer 数据库并转到 MySql 或 Oracle。出于这个原因,我提出了一套关于我们的 .Net 应用程序如何与数据库通信的标准,以便将来在需要时更容易迁移到不同的数据库系统。
标准如下:
- 尽可能使用 ORM(例如 NHibernate)(没有 LINQ,因为它只是 支持SqlServer,但是呢 Entity Framework 及其支持 Oracle 和 MySql?)
- 如果 ORM 有点过分,则使用参数化 SQL 查询。
- 仅将存储过程用于长时间运行或复杂的操作 需要在 数据库。
这让我想到了我的手头的主要问题。 我应该使用哪个命名空间来编写我的 DAL?
在我看来,选择是在 System.Data.ODBC
和 System.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。)
关于.net - 什么时候应该使用 Odbc、OleDb、SQLClient?有什么权衡取舍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937083/