我正在尝试在流利的 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
{
}
映射:
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");
}
}
提前感谢您的任何帮助。