NHibernate DuplicateMappingException when mapping abstract class and subclass
        Posted  
        
            by stiank81
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by stiank81
        
        
        
        Published on 2010-06-15T08:05:04Z
        Indexed on 
            2010/06/15
            8:42 UTC
        
        
        Read the original article
        Hit count: 757
        
nhibernate
|fluent-nhibernate
|nhibernate-mapping
|abstract-class
|duplicatemappingexception
I have an abstract class, and subclasses of this, and I want to map this to my database using NHibernate. I'm using Fluent, and read on the wiki how to do the mapping. But when I add the mapping of the subclass an NHibernate.DuplicateMappingException is thrown when it is mapping. Why?
Here are my (simplified) classes:
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; 
        }
    } 
}
And the mappings:
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);
    }
}
And the exception:
NHibernate.MappingException : Could not compile the mapping document: (XmlDocument) ----> NHibernate.DuplicateMappingException : Duplicate class/entity mapping NamespacePath.StringFieldValue
Any ideas?
© Stack Overflow or respective owner