2012-11-15 2 views
0

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.

Répondre

1

Veuillez essayer la dernière version (7.2.122) de dotConnect for Oracle. Si cela ne vous aide pas, spécifiez les informations suivantes: 1) Activez l'outil dbMonitor et affichez ici (ou au forums.devart.com/viewforum.php?f=30) le SQL généré, les paramètres utilisés (leurs types et valeurs); 2) les types de données exacts des colonnes de base de données concernées; 3) utilisez-vous le mode OCI (via le client Oracle) ou Direct?

+0

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

Questions connexes