NHibernate Fluent Mapping导致此SqlParameterCollection的索引号无效,且Count = n

时间:2016-01-04 17:24:30

标签: nhibernate fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

我有一个TrainingSpecialty类,其映射如下:

public TrainingSpecialityMap()
{
    Table("TrainingSpecialty");
    Id(o => o.Id).GeneratedBy.Native();
    DiscriminateSubClassesOnColumn(CandidateTrainingDatabase.TrainingSpecialtyTable.IsCombinedColumn)
        .Formula(
            string.Format("case when {0} is null then 0 else {0} end", CandidateTrainingDatabase.TrainingSpecialtyTable.IsCombinedColumn));
            Map(o => o.Code);
            Map(o => o.Name).Not.Nullable();
            Map(o => o.TrainingProgramType, "ProgramType").Not.Nullable();
            HasMany(o => o.Forms)
                .Not.KeyNullable()
                .KeyColumn("TrainingSpecialtyID").Cascade
                .SaveUpdate();
            Map(o => o.ProcedureTitle).Nullable();
            HasMany(o => o.Procedures);
}

我尝试创建新表单,将其添加到TrainingSpecialty.Forms列表,然后更新TrainingSpecialty。这样做的目的是添加新表单。 (请注意,Form没有返回TrainingSpecialty的导航属性。如果不更改Form类,就没有简单的方法可以添加表格并引用TrainingSpecialty,这就是我更新TrainingSpecialty的原因。 )

我遇到的第一个错误更新TrainingSpecialty是 Domain.EvaluationForm.Domain.TrainingSpecialty.FormsBackref的错误脱水属性值。

内部异常此SqlParameterCollection的索引3无效且Count = 3.

应该始终存在一个以前存在的表单,而我现在正在尝试添加第二个表单。我已经查找了重复映射的字段(根据其他有此问题的字段)。

这个映射是如何关闭的?

1 个答案:

答案 0 :(得分:0)

这是一个重复的映射,就像这样的许多其他人一样。在这种情况下,表格映射某人已将参考添加回培训专业。