0

我有如下映射一類TrainingSpecialty:NHibernate的流利映射導致無效指數n此SqlParameterCollection以計數= N

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。這個的目的是添加新的表單。 (請注意,表單沒有導航屬性返回到TrainingSpecialty。如果不更改Form類別,則沒有簡單的方法來添加表單並添加對TrainingSpecialty的引用,這就是我更新TrainingSpecialty的原因。)

我遇到的第一個錯誤更新TrainingSpecialty是Domain.EvaluationForm.Domain.TrainingSpecialty.FormsBackref的脫水屬性值出錯。

內部異常是此計數= 3的SqlParameterCollection的索引3無效。

應該總是有一個先前存在的窗體,我現在試圖添加一個窗體。我查找了重複映射的字段(按照其他人有此問題)。

此映射如何關閉?

回答

0

這是一個重複的映射,就像許多其他人一樣。在這種情況下,表單映射某人已將參考添加回培訓專業。