Je travaille avec une base de données existante qui stocke des valeurs "vides" dans un seul espace. Existe-t-il un moyen avec Fluent NHibernate, que ce soit par le biais d'une convention ou d'un remplacement de mappage, que je puisse traduire cette valeur "vide" en .NET null? (Je sais que je devrai sauvegarder les valeurs nulles dans cette base de données en tant qu'espace unique, mais j'utiliserai un écouteur d'événement save pour cela).comment traduisez-vous une valeur d'espace dans un champ de base de données à un null dans .NET avec Fluent NHibernate?
1
A
Répondre
2
Vous devez utiliser une implémentation personnalisée de IUserType
pour cela, pas un écouteur. Voici one example de nombreux exemples disponibles sur le web. James Gregory a écrit un good article sur la façon d'implémenter IUserTypes en utilisant une convention NHibernate Fluent.
Je le ferais avec un type d'utilisateur aussi. –
n'y at-il aucune sorte de convention ou quelque chose que je peux définir au lieu d'avoir à définir IsCustomType sur chaque champ (c'est une convention héritée tout au long de cette base de données)? – gabe
Oui. Je ne suis pas un expert sur les conventions mais vous pouvez substituer un IUserType pour un autre type avec des conventions. Dans votre cas, vous pouvez remplacer tous les mappages de type chaîne par IUserType qui stocke les chaînes vides en tant qu'espace unique. Cela devrait aider: http://jagregory.com/writings/fluent-nhibernate-auto-mapping-type-conventions/ –