![]() |
1
3
System.Data.SQLClient仅连接到SQL Server 2000及更高版本,但连接到这些数据库时将获得最佳性能。 System.Data.OledbClient连接到SQL 6.5 OLEDBClient使您能够连接到其他数据库,如ORACLE或Access。但是对于使用SQL Server,使用SQL客户端将获得更好的性能。
System.Data.ODBCClient
|
![]() |
2
2
您想使用SQL Server驱动程序。我理解您试图做什么,但是您要实现支持多个数据库的方法是插入另一层抽象。你可以用很多方法来做到这一点。但是您将特定于数据库的代码放在类层次结构的边缘。因此,每个类都可以获得特定于数据库的功能的好处,但更高级别的调用方不知道或不关心下面使用的是什么数据库。至于我,我更喜欢 LLBLGen 另外,为了澄清,LINQ并不是特定于SQL Server的。这就是LINQ到SQL。LINQ是一种查询技术,可以在LINQtoSQL、LINQtoEntities、LINQtoObject中使用,甚至LLBLGen都支持LINQ。 |
![]() |
3
2
无论您现在使用的是SQLClient还是Odbc,如果您使用存储过程或其他特定于数据库的功能,那么如果您更改了数据库引擎,就必须重写这些功能。 |
![]() |
4
1
如果DAL发生变化,我只需要使用SqlClient并重新写入/重新生成DAL。 除非您现在要在多个平台上实现和测试,否则我不确定现在的额外工作是否是一件大事,或者是否比重做DAL的工作要少。事实上,您已经有了一个DAL,这意味着您已经将所有东西都放在一个地方,以便以后进行更改。 |
![]() |
5
1
如果您有任何迹象表明您将交换数据库(或支持多个后端),那么ORM就是一个不错的选择。否则,您仍然需要重构/重写大量DAL以支持更改。如果你的应用程序很小,它不会很坏,但是任何实质性的东西都会伤害你。 |
![]() |
6
1
您会发现,使用SQL Server开发SqlClient比使用OleDB和ODBC要快得多,也更容易——除非您极有可能需要支持多种平台,否则您会发现重写DAL的好处大于风险。 此外,使用OleDB/ODBC仅仅是维护平台独立性的一种方法——您可能会发现多个DAL实现更有效,每个实现都使用所使用平台的本地客户端。 |
![]() |
7
0
我听说过,除非它是一个关键特性,否则您不应该太担心维护平台独立性。也就是说, SQLClient将为您提供本机访问,并且应该更高效(它不必进行任何抽象/翻译)。 与ODBC相比,要使OLEDB正常工作,唯一需要更改的是连接字符串。OLEDB有更多的客户端智能,因此它提供了更好的性能。 |
![]() |
SiC99 · 访问数据集-“找不到表0” 9 年前 |