相关疑难解决方法(0)

映射抽象类和子类时NHibernate DuplicateMappingException

我有一个抽象类,以及它的子类,我想使用NHibernate将它映射到我的数据库.我正在使用Fluent,并在wiki上阅读如何进行映射.但是当我添加子类的映射时,NHibernate.DuplicateMappingException在映射时会抛出.为什么?

这是我的(简化)课程:

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; 
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

和映射:

public class FieldValueMapping : ClassMap<FieldValue>
{
    public FieldValueMapping()
    {
        Id(m => m.Id).GeneratedBy.HiLo("1");
        // DiscriminateSubClassesOnColumn("type"); 
    }
}

public class StringValueMapping : SubclassMap<StringFieldValue>
{
    public …
Run Code Online (Sandbox Code Playgroud)

nhibernate abstract-class nhibernate-mapping fluent-nhibernate

5
推荐指数
1
解决办法
3511
查看次数