簡體   English   中英

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

[英]DevArt dotConnect for Oracle with strange behavior on strings with EF 4.0

在將項目更新為DevArt的7.2.114版后,我意識到盡管直接在TOAD中執行生成的SQL會返回結果,但有些查詢將不會返回結果。 如果我切換回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) 

現在,當我執行EF查詢時,它將導致0條記錄,而沒有任何異常。 但是,如果我使用SQL命令,它將導致2條記錄。

如果我將第2行中的代碼更改為:

var someFieldToSearch = string.Empty;

它將返回正確的結果。

我發現了一些指向此代碼的提示:

Devart.Data.Oracle.Entity.OracleEntityProviderServices.HandleNullStringsAsEmptyStrings = true;

但沒有效果。

請嘗試使用最新版本(7.2.122)的dotConnect for Oracle。 如果這樣做沒有幫助,請指定以下信息:1)打開dbMonitor工具,並在此處(或在forums.devart.com/viewforum.php?f=30上 )發布生成的SQL,使用的參數(其類型和值) ); 2)涉及的數據庫列的確切數據類型; 3)您使用的是OCI(通過Oracle客戶端)還是直接連接模式?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM