我必须编写一个小的 C# 程序,它将以动态方式处理至少三个不同的数据库供应商(Oracle、Sybase ASE、SqlServer)。(它将依赖于客户的选择来选择数据库)
我决定通过 ado.net 数据提供程序使用“纯”托管驱动程序。
但是,当我只是尝试连接时,我希望代码是“一条线来统治它们”,就像 JDBC 那样:
DriverManager.getConnection(connection_string);
取而代之的是,令人惊讶的是,我必须为每个驱动程序编写其特定代码:
SqlConnection() for SqlServer
AseConnection() for Sybase
OracleConnection(), etc.
当然,我应该自己封装所有这些在抽象方法和动态加载中,但我想知道为什么.net 中不存在这样的东西
嗯,我感觉我错过了什么