Voici les classes du modèle de domaine:cartographie NHibernate avec une hiérarchie de classes dont la classe de base est abstraite et le discriminateur est pas une chaîne
public abstract class BaseClass
{
...
}
public class ChildClass : BaseClass
{
...
}
Notez que la classe parente est abstraite et ce qui me donne des difficultés quand vient le temps de cartographier avec nhibernate fluide. Mon discriminateur est un octet (tinyint dans la DB). Parce que ce n'est pas une chaîne et je ne peux pas gérer pour définir une valeur discriminante sur la classe de base, cela ne fonctionne pas (extrait de la classe de mapping pour BaseClass):
DiscriminateSubClassesOnColumn<byte>("Type")
.SubClass<ChildClass>()
.IsIdentifiedBy((byte)OperationType.Plan)
.MapSubClassColumns(p => { ... })
Le message d'erreur que je reçois est:
Méthode d'initialisation de classe UnitTest1.MyClassInitialize a levé l'exception. NHibernate.MappingException: NHibernate.MappingException: Impossible de formater la valeur du discriminateur en chaîne SQL de l'entité BaseClass ---> System.FormatException: la chaîne d'entrée n'était pas dans un format correct.
La publication suivante semble expliquer ce qui se passe. Ils donnent une solution avec xml mais pas avec nhibernate fluent: http://forum.hibernate.org/viewtopic.php?t=974225
Merci pour l'aide.
Merci d'avoir lié à la solution avec XML - exactement ce dont j'avais besoin! –