我注意到我从带有.Net 4.6,IQToolkit和LinqPad5的Oracle数据库中检索到的数字丢失了。查询:
SQL:
select -3 from SomeTable where rownum <= 1
的LINQ:
(from iVal in SomeTables select new { Value = -3}).Take(1)
场景1:在LinqPad5中,使用IQToolKit.Data.OracleClient 0.17.1,Devart.Data.Oracle 7.9.333和.Net 4.6,两个查询都返回 3 (丢失符号)。
场景2:在LinqPad4中,使用IQToolKit.Data.OracleClient 0.17.1,Devart.Data.Oracle 7.9.333和.Net 4.0,两个查询都返回 -3 (正确的值)。
方案3:在Visual Studio 2013中,使用Oracle.ManagedDataAccess 4.121.2,6.121.2,EntityFramework 6.0和.Net 4.5,Linq查询返回 3 (丢失符号)。< / p>
以上所有内容都在安装了Oracle Home Client 11g和12的计算机上运行。
在另一台同时拥有两个版本的Oracle客户端但仅安装了.net 4.0的计算机上,第二个方案返回 -3 。
任何人都可以推断出哪种技术导致了这个问题吗?我觉得它指向.Net&gt; = 4.5,但这个想法听起来很荒谬。