另请参阅System.Data.OracleClient 命名空间已终止?
(首先不要惊慌,Microsoft 尚未删除 System.Data.OracleClient,但它不在 .net 4 的客户端版本中)
通过使用 System.Data.OracleClient 可以实现此用途,但 Microsoft 已决定弃用 OracleClient。(OracleClient 是 Microsoft 为 Oracle 开发的 ADO.NET 提供程序,并作为 .NET Framework 的一部分提供。)
您可以使用 ODP.Net,但是您是否希望您的 Sql Server 客户必须安装 ODP.Net?(您希望您的任何客户都必须安装 Oracle 软件吗?)
DataDirect不是一个选项,因为它需要花费一条胳膊和一条腿;如果您需要将单个服务器连接到大型机,它可能几乎是负担得起的。然而,期望所有客户都购买它不是一种选择。
从 C# 迁移到 Java 不是一个好的选择,因为我是一名 C# 程序员并且希望能够谋生!
像大多数必须支持多个 RDBMS 的 ISV 一样,我们只需要一个允许我们使用与 SqlServer 相同的 Oracle 的小子集的解决方案。因此 System.Data.OracleClient 对我们来说已经足够强大了。
(也许我们应该开始将所有数据存储在平面文件中,这样客户的 DBA 就不会再试图告诉我们如何编写软件了。Oracle DBA 更糟糕!)
我真正的问题是如何编写与 Oracle 对话的 .NET 软件,我们可以轻松地将其安装为与 SqlServer 对话的 .NET 软件。不得不使用 ODP.NET 只会让 oracle 客户端安装更加痛苦,而且还会出错。
如果我使用的是 JAVA,我可以只使用 JDBC 类型 4 驱动程序。Microsoft 为 SqlServer 提供了一种,Oracle 为 Oracle 提供了一种。然而,甲骨文似乎希望尽可能难地使用.Net,而微软希望尽可能地使用甲骨文。
到目前为止,最好的选择看起来像devArt 的 dotConnect。
然而,我开始质疑 .NET 是否是 ISV 的一个很好的开发系统,因为迟早你总会遇到需要 oracle 支持的客户。在 Java 世界中,他们似乎已经解决了这个问题。
看起来 Oracle 可能即将推出一个明智的完全托管的 ADO.NET 提供程序,它自己甚至可能很容易安装!请参阅此处声称 Beta – 2011,生产 – 2011 年底。