I have an abstract class and subclasses of this, and I want to map this to my database using NHibernate. I use Fluent, and reads on the wiki how to do the mapping. But when I add a subclass mapping, NHHernernate.DuplicateMappingException is thrown when it is displayed. What for?
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 display:
public class FieldValueMapping : ClassMap<FieldValue>
{
public FieldValueMapping()
{
Id(m => m.Id).GeneratedBy.HiLo("1");
}
}
public class StringValueMapping : SubclassMap<StringFieldValue>
{
public StringValueMapping()
{
Map(m => m.ValueAsString).Length(100);
}
}
And an exception:
NHibernate.MappingException: failed to compile the mapping document: (XmlDocument) ----> NHibernate.DuplicateMappingException: duplication of class / entity mapping NamespacePath.StringFieldValue
Any ideas?