将C#(.NET)应用程序连接到Oracle 10g和11g的最佳库/驱动程序是什么 我找到的当前选项是:
有人可以解释一下差异吗?
我正计划在Oracle数据库上执行基本CRUD操作的C#应用程序。哪个库/驱动程序最小且最容易安装?
修改
一般建议是使用ODP.Net。现在,有人可以解释或指出回答客户端安装包之间的差异。我为Oracle 11g找到了3个不同的客户端:
那么,哪一个足够发展? Oracle文档非常详细,但没有说明这些客户端软件包之间的差异。我会选择最小的(即时客户端)。这是最好的选择吗?
编辑2:
我正在使用.Net 3.5
答案 0 :(得分:7)
Microsoft将deprecate System.Client.OracleClient
命名空间,因此我认为最好使用ODP.NET。确保下载最新版本(ODP.NET 11g),因为以前的版本存在一些问题。
答案 1 :(得分:5)
要将C#连接到oracle,您需要.net的数据提供程序。这可以是以下之一:
此数据提供程序的所有都需要安装oracle客户端。没有独立的库作为jdbc14.jar,就像在java中一样。您有2个选择部署oracle客户端:
ODP.Net,ODBC,OLEDB是完整客户端的一部分。这是“硬”方式,因为必须在运行软件的每个客户端上运行安装过程。这是客户端上最多兆字节的位置 instant client在不同的包中提供。这是部署oracle客户端的最小方式。
我建议将ODP.Net与Oracle Instant Client结合使用,因为这样易于部署且重量非常轻。
您需要哪些即时客户端软件包:
关于使用c#应用程序部署oracle即时客户端,有很多关于stackoverflow的文章。
编辑:更新了链接和版本
答案 2 :(得分:4)
ODP.NET是访问Oracle数据库的最佳提供商,主要是因为它是最本机的,它通过以下方式区别于ODBC:
也可以使用ODBC,但如上所述,它会变慢并且功能有限。
要使ODP.NET正常工作,您需要此处列出的软件(包括oracle客户端): http://www.oracle.com/technology/tech/windows/odpnet/faq.html#install
希望这有帮助!
答案 3 :(得分:2)
也许我错了,但ADO.NET已经集成了对Oracle的支持。也许对于早期版本...
答案 4 :(得分:2)
我觉得odbc太慢了。 System.Data.OracleClient也有点慢,它将被Microsoft弃用。
你可以使用devart的提供者,有一个免费版本。它易于部署。见http://www.devart.com/dotconnect/oracle/它确实支持实体框架。
Odp.net速度很快,但它不支持实体框架,因此部署起来并不容易。
答案 5 :(得分:1)
我真的不能说你提供的解决方案之间存在差异,但我总是使用Oracle提供的Oracle数据访问组件,它总能完美运行。可在此处找到:ODAC for Visual Studio
可靠的是,Oracle在.NET Framework上开发的库比Oracle外部公司开发的库要准确得多。例如,关于访问Oracle数据库时抛出的异常,如果Oracle开发团队已经开发了这些库,那么它们会更有用,因为他们对Oracle数据库有额外的知识。
糟糕的是,如果您选择使用.NET System.Data.OracleClient,您将有一个依赖性问题,您不必克服这个问题。
希望这会有所帮助。问候。
编辑:ODAC包中包含ODP和Oracle Developer Tools
答案 6 :(得分:1)
ODP.NET是访问oracle db的本机提供程序。因此它应该更好地优化oracle db。此外,还有oracle特性,例如REF CURSOR类型,它们不受MS ODBC支持,但受ODP.NET支持。您也可以在www.aracle.com网站上下载ODAC,其中包括ODP.NET。