Fluent Nhibernate 继承引发索引超出范围异常

本文关键字:范围 异常 索引 Nhibernate 继承 Fluent | 更新日期: 2023-09-27 18:35:28

我正在尝试在流利的nhibernate中实现继承,但即使是最简单的映射也会抛出异常:计数=1的此SqlParameterCollection的索引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
{
}

映射:

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");
    }
}

提前感谢任何帮助。

Fluent Nhibernate 继承引发索引超出范围异常

Gaaaaah,在发布后不久就找到了答案。 鉴别器列本身不需要映射,它通过被指定为鉴别器来映射。 看不见树的木头,现在感觉挺傻的......