NHibernate Fluent Mapping приводит к недопустимому индексу n для этой коллекции SqlParameterCollection с Count=n

У меня есть класс 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.

Внутреннее исключение: Неверный индекс 3 для этой коллекции SqlParameterCollection со значением Count=3.

Всегда должна быть одна ранее существовавшая форма, и сейчас я пытаюсь добавить вторую. Я искал поля, которые дублируются (как и другие, у которых была эта проблема).

Как отключается это отображение?


person Steve Wash    schedule 04.01.2016    source источник


Ответы (1)


Это было дублированное сопоставление, как и многие другие подобные. В этом случае при отображении формы кто-то добавил ссылку на специальность обучения.

person Steve Wash    schedule 04.01.2016