流畅的Nhibernate继承会抛出索引超出范围的异常

Ian*_*ill 2 .net c# nhibernate fluent-nhibernate

我正在尝试在流畅的nhibernate中实现继承,但即使是最简单的映射也会抛出异常:此SqlParameterCollection的索引1无效,Count = 1.

我传递的映射是我可以做的基本映射,只映射Id,源和数量,但是传递给集合的唯一参数是数量,而不是源(我的鉴别器)和我正在抛出异常.我本来想让我的鉴别器成为一个枚举,但由于我无法得到任何东西,我为了简单起见,我把它变成了一个字符串.

虽然子类目前没有向对象添加任何其他功能,但其他人会,这是最基本的版本所以我认为这将是最简单的...

阅读这个错误,问题通常是由于在基类和子类中都有一个映射的属性,但据我所知,情况并非如此.任何人都可以指出我做错了什么,因为我有点亏.

类别:

public class BasePayment
{
    public virtual int Id { get; set; }
    public virtual string Source { get; set; }
    public virtual decimal Amount { get; set; }
}

public class SubPayment : BasePayment
{
}
Run Code Online (Sandbox Code Playgroud)

映射:

public class BasePaymentMap : ClassMap<BasePayment>
{
    public BasePaymentMap()
    {
        DiscriminateSubClassesOnColumn("Source");
        Table("BasePayments")
        Id(m => m.Id);
        Map(m => m.Source);
        Map(m => m.Amount);
    }
}

public class SubPaymentMap : SubclassMap<SubPayment>
{
    public SubPaymentMap()
    {
        DiscriminatorValue("SourceX");
    }
}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的任何帮助.

Ian*_*ill 5

Gaaaaah在发布后不久找到答案.鉴别器列本身不需要映射,它通过被指定为鉴别器来映射.现在看不到树木的木头,感觉相当愚蠢......