2010-07-05 20 views
1

Essayer de stocker la propriété de C#/.NET type byte[] dans SQLite. Voici ma carte:Comment faire pour mapper de petits objets binaires correctement dans le combo SQLite/NHibernate (mauvaise affinité de type)?

<class name="MyClass" lazy="false" table="MyTable"> 
    <property name="MyProperty" type ="BinaryBlob" access="property" /> 
</class> 

En SQL server cela fonctionne comme un charme, même sans l'type="BinaryBlob" explicite dans la cartographie. Dans SQLite j'ai essayé plusieurs combinaisons de types entre les instructions SQL CREATE TABLE et les types de données NHibernate, mais chaque fois obtenir une exception que "le mappage ne peut pas être compilé" (en raison d'incompatibilité de type) ou une exception qu'un casting de le type de données extrait au type de mappage est impossible.

La valeur de MyProperty dans l'instruction d'insertion ressemble à ceci: 0x7C87541FD3F3EF5016E12D411900C87A6046A8E8.

Mise à jour: continuer à déboguer System.Data.SQLite.SQLiteDataReader - ressemble à peu importe quel type SQL est (essayé decimal, blob, unsigned big int) - l'affinité de type est toujours text. Que dois-je faire de mal (techniquement ou en général)? Toute suggestion est la bienvenue.

Répondre

0

La raison de text affinité est que les données ont été importées dans une table de CSV(valeurs séparées par des virgules) Fichier. Passage au Le fichier SQL avec une instruction correcte INSERT a résolu le problème.