2012-11-15 48 views
0

將我的項目更新到DevArt V7.2.114後,我發現有些查詢不會返回結果,儘管生成的SQL在TOAD中直接執行時會返回結果。如果我切換回到7.0.25版,一切正常。DevArt dotConnect for Oracle在EF 4.0字符串上出現奇怪行爲

我的數據庫客戶表看起來是這樣的:

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; 

但它沒有效果。

回答

1

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

+0

感謝您的提示。在這種情況下,我們正在使用直接模式。我沒有發佈SQL,因爲原始查詢要複雜得多,但我會嘗試。首先我會檢查最新版本。有關於我們的問題的更新嗎? – sprinter252