je la situation suivante dans une base de données existante [exemple]cartographie NHibernate multiple clé composite thowing System.IndexOutOfRangeException
table1
**ID_TABLE1 [PK]
ID_SOURCE** [PK]
table2
**ID_TABLE2 [PK]
ID_SOURCE** [PK]
table3
**ID_TABLE3 [PK]
ID_SOURCE** [PK][FK]
ID_TABLE2 [FK]
ID_TABLE1 [FK]
public partial classTable3Map : ClassMap<TABLE3>
{
public classTable3Map()
{
Table("TABLE3");
LazyLoad();
CompositeId().KeyProperty(x => x.ID_TABLE3 , "ID_TABLE3").KeyProperty(x => x.ID_SOURCE, "ID_SOURCE");
References(x => x.TABLE1).Columns("ID_TABLE1 ", "ID_SOURCE");
References(x => x.TABLE2).Columns("ID_TABLE2 ", "ID_SOURCE");
}
}
Lorsque je tente de sauvegarder ce type d'objets jeter un NHibernate
**System.IndexOutOfRangeException**
Message=Index xx non valid for xxxParameterCollection
Je verrai qu'il a plus d'entrée que de paramètre (les colonnes ID_SOURCE dupliquées)
Lorsque j'essaie de mapper une relation m est la même situation.
Je peux enregistrer si je mappe l'ID au lieu d'objets (référence) et enregistrer les enfants avant l'insertion, mais je dois réécrire le modèle et faire beaucoup d'ajustements manuels.
Pouvez-vous ajouter quelque chose de plus de la stacktrace ? –