gpt4 book ai didi

c# - Fluent Nhibernate 继承抛出索引超出范围异常

转载 作者:行者123 更新时间:2023-12-02 22:40:59 24 4
gpt4 key购买 nike

我正在尝试在流畅的 nhibernate 中实现继承,但即使是最简单的映射也会引发异常:Count=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");
}
}

在此先感谢您的帮助。

最佳答案

Gaaaaah,发布后不久就找到了答案。鉴别器列本身不需要映射,它通过指定鉴别器来映射。只见树木不见森林,现在感觉相当愚蠢......

关于c# - Fluent Nhibernate 继承抛出索引超出范围异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com