Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DevArt dotConnect for Oracle在EF 4.0的字符串上具有奇怪的行为_C#_.net_Entity Framework_Devart_Dotconnect - Fatal编程技术网

C# DevArt dotConnect for Oracle在EF 4.0的字符串上具有奇怪的行为

C# DevArt dotConnect for Oracle在EF 4.0的字符串上具有奇怪的行为,c#,.net,entity-framework,devart,dotconnect,C#,.net,Entity Framework,Devart,Dotconnect,在我将我的项目更新到DevArt的7.2.114版本之后,我意识到一些查询不会返回结果,尽管生成的SQL如果直接在TOAD中执行,会返回结果。如果我切换回7.0.25版,一切正常 我的数据库客户表如下所示: SomeField | Firstname | CustomerNo (null) | John | 12345 12345 | John | 12345 828282 | Mark | 12346 var firstNa

在我将我的项目更新到DevArt的7.2.114版本之后,我意识到一些查询不会返回结果,尽管生成的SQL如果直接在TOAD中执行,会返回结果。如果我切换回7.0.25版,一切正常

我的数据库客户表如下所示:

SomeField  | Firstname  | CustomerNo

(null)     | John       | 12345
12345      | John       | 12345
828282     | Mark       | 12346
var firstNameToSearch = "John";
var someFieldToSearch = null;
var result = from customer in context.Customers
            join someTable in context.SomeTables on customer.CustomerNo equals "12345"                            
            where someTable.SomeCondition && (someTable.SomeField == someFieldToSearch || someFieldToSearch == null) && (customer.Firstname == firstNameToSearch || firstNameToSearch == null) 
我的查询如下所示:

SomeField  | Firstname  | CustomerNo

(null)     | John       | 12345
12345      | John       | 12345
828282     | Mark       | 12346
var firstNameToSearch = "John";
var someFieldToSearch = null;
var result = from customer in context.Customers
            join someTable in context.SomeTables on customer.CustomerNo equals "12345"                            
            where someTable.SomeCondition && (someTable.SomeField == someFieldToSearch || someFieldToSearch == null) && (customer.Firstname == firstNameToSearch || firstNameToSearch == null) 
现在,当我执行EF查询时,它将生成0条记录,没有任何异常。但是如果我使用SQL命令,它将产生2条记录

如果我将第2行中的代码更改为:

var someFieldToSearch = string.Empty;
它将返回正确的结果

我发现了一些指向此代码的提示:

Devart.Data.Oracle.Entity.OracleEntityProviderServices.HandleNullStringsAsEmptyStrings = true;
但它没有效果。

请尝试最新(7.2.122)版本的Oracle dotConnect。如果没有帮助,请指定以下信息: 1) 打开dbMonitor工具,并在此处(或处)发布生成的SQL、使用的参数(其类型和值); 2) 所涉及数据库列的确切数据类型;
3) 您使用的是OCI(通过Oracle客户端)还是直接连接模式?

谢谢您的提示。在这种情况下,我们使用直接模式。我没有发布SQL,因为原始查询要复杂得多,但我会尝试。首先,我将检查最新版本。是否有关于我们的问题的更新?