Après avoir mis à jour mon projet vers la version 7.2.114 de DevArt, j'ai reconnu que certaines requêtes ne retourneront pas de résultats bien que le SQL généré renvoie des résultats s'il est exécuté directement dans TOAD. Si je repasse à la version 7.0.25, tout fonctionne correctement.DevArt dotConnect pour Oracle avec un comportement étrange sur les chaînes avec EF 4.0
Ma base de données table client ressemble à ceci:
SomeField | Firstname | CustomerNo
(null) | John | 12345
12345 | John | 12345
828282 | Mark | 12346
Ma requête ressemble à ceci:
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)
Maintenant, quand j'exécute l'EF-requête, il se traduira par 0 enregistrements sans exception du tout. Mais si je prends la commande SQL, il en résultera 2 enregistrements.
Si je change le code en ligne 2 à:
var someFieldToSearch = string.Empty;
il retournera le bon résultat.
J'ai trouvé un quelques conseils pointant vers ce code:
Devart.Data.Oracle.Entity.OracleEntityProviderServices.HandleNullStringsAsEmptyStrings = true;
mais il n'a pas d'effets.
Merci pour les conseils. Nous utilisons le mode direct dans ce cas. Je n'ai pas posté le SQL parce que la requête originale est beaucoup plus complexe mais je vais essayer. Je vais d'abord vérifier la dernière version. Y a-t-il une mise à jour concernant notre problème inclus? – sprinter252