Je travaille avec une ancienne base de données utilisée par d'autres applications, donc je ne peux pas modifier sa structure. Parfois, j'ai des colonnes nullables que je veux mapper en tant que type non nullable. Par exemple, j'ai une colonne EndValidity Nullable sur la base de données que je veux mapper sur un DateTime non nullable, et, si null, il devrait être DateTime.MaxValue, ou comme un exemple plus simple, une colonne de bits Nullable qui doit être false si nul.NHibernate: Valeur par défaut pour une propriété sur une colonne nulle
Je pense à écrire un type d'utilisateur personnalisé (avec des paramètres si possible), ou y at-il quelque chose d'inclus dans nHibernate?
Si la seule solution est d'écrire un type d'utilisateur personnalisé, pour le cas booléen, puis-je remplacer les conventions fluentnhibernate pour toujours appliquer ce type d'utilisateur pour les booléens?
Si je voulais filtrer sur ce champ, je dirais à nHibernate quelque chose comme 'où obj.IsActive == false'. Le filtrage serait-il transmis à la base de données via le mappage de la propriété 'internal isActive' ou le filtrage serait-il effectué sur un résultat non filtré dans .net? – Alex
en supposant que vous utilisez Linq, puis en mémoire et non au niveau DB. Si vous utilisez NHibernate pour Linq/IQueryOver/ICriteria/HQL alors j'imagine que vous auriez une erreur d'exécution car IsActive n'est pas mappé et NHibernate n'aurait aucune idée de comment travailler avec. – cdmdotnet