Tengo una clase abstracta y subclases de esto, y quiero asignar esto a mi base de datos usando NHibernate. Estoy usando Fluent, y read on the wiki cómo hacer el mapeo. Pero cuando agrego el mapeo de la subclase, se lanza una NHibernate.DuplicateMappingException cuando está mapeando. ¿Por qué?NHibernate DuplicateMappingException al mapear la clase abstracta y la subclase
Éstos son mis clases (simplificado):
public abstract class FieldValue
{
public int Id { get; set; }
public abstract object Value { get; set; }
}
public class StringFieldValue : FieldValue
{
public string ValueAsString { get; set; }
public override object Value
{
get
{
return ValueAsString;
}
set
{
ValueAsString = (string)value;
}
}
}
Y las asignaciones:
public class FieldValueMapping : ClassMap<FieldValue>
{
public FieldValueMapping()
{
Id(m => m.Id).GeneratedBy.HiLo("1");
// DiscriminateSubClassesOnColumn("type");
}
}
public class StringValueMapping : SubclassMap<StringFieldValue>
{
public StringValueMapping()
{
Map(m => m.ValueAsString).Length(100);
}
}
y la excepción:
NHibernate.MappingException: No se pudo compilar el documento de mapeo : (XmlDocument) ----> NHibernate.DuplicateMappingException: asignación de clase/entidad duplicada Na mespacePath.StringFieldValue
¿Alguna idea?
Sí, solo estoy usando mapeos explícitos, pero el pensamiento cruzó por mi mente ... Tengo que echar un vistazo para ver si por alguna razón mapeó automáticamente la subclase. ¿Verdad? – stiank81
Esta es la primera vez que uso un SubclassMap. ClassMap no está automatizado, pero ¿podría ser que SubclassMaps son? No tengo mucha experiencia con Fluent .. – stiank81
http://stackoverflow.com/questions/1538248/fluent-nhibernate-mapping-a-class-with-subclass-problem/1538419#1538419 Puedes mirar aquí para un ejemplo – Sly