2012-02-28 2 views
0

J'ai rencontré un problème lors de la lecture des chaînes que j'ai persistées en utilisant nhibernate dans un DB Oracle. Si j'écris une chaîne contenant un CRLF (0x0D + 0x0A) après l'avoir lu, je n'ai que LF. La colonne dans la base de données est un NVARCHAR2 et la propriété est mappée dans NHibernate comme une chaîne (j'ai essayé aussi la cartographie comme ANSIString mais il n'y avait pas de différence) comme celui-cinhibernate et CRLF dans une base de données Oracle

<property name="ExtraInformation" column="ExtraInformation" type="String" /> 

Toute aide sera appréciée.

+0

IMO Oracle ne convertit pas les données que vous lui attribuez. Comment vérifiez-vous que le CRLF est converti en LF? – Firo

Répondre

0

dos NHibernate n'exécutent une sorte de chaîne de transformation (ne devrait Oracle, à moins qu'il ya un certain arrangement étrange que je ne suis pas au courant)

Le problème est très probablement dans votre propre code (vous n'êtes pas vraiment envoyer CRLF)

+0

VS montre la chaîne comme "quelque chose \ r \ nquelquechose" avant de la valider dans la base de données, après l'avoir lu dans une autre session, je récupère "quelque chose \ nsomething". Ceci est fait dans un test unitaire isolé d'un autre code, sauf si VS signale incorrectement que je pense envoyer un CRLF. –

+0

OK, l'étape suivante isole ceci de NHibernate. Essayez de faire l'insert/select avec ADO.NET brut. –

Questions connexes