[英]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.