J'ai trois classes qui posent un problème lorsque vous essayez d'ajouter un nouvel enfant.NHibernate et l'ajout de nouveaux éléments avec une collection composite à une collection enfant
Ils sont:
User {
List attributesGroup>
}
AttributesGroup {
attributesGroupId
value
}
AttributesGroupId {
attrName
userId
}
La cartographie est:
<class name="AlternativeUserAttributes" table="`AlternativeUserAttributes`" lazy="true">
<composite-id name="Id" class="Data.Entities.AlternativeUserAttributesId">
<key-property name="AttributeName" column="`attributeName`" type="string" />
<key-many-to-one name="User" class="Entities.User" column="`userId`" />
</composite-id>
<property name="AttributeValue" column="`attributeValue`" type="string" />
<many-to-one name="User" column="`userId`" cascade="none" not-null="true" />
</class>
Je peux supprimer des éléments et SaveUpdate de classe de la classe utilisateur sans problème, mais lorsque je tente d'ajouter un élément à la collecte via:
AlternativeUserAttributes aua = new AlternativeUserAttributes();
aua.Id = new AlternativeUserAttributesId();
aua.Id.AttributeName = name;
aua.Id.User = curUser;
aua.AttributeValue = value;
aua.User = curUser;
curUser.AlternativeUserAttributes.Add(aua);
Je reçois une erreur à propos du fait que le nombre de lignes était e Je pensais que je devais être 1 mais zéro, et lorsque j'essaie de sauvegarder seulement les attributs AlternateUserAttributes en utilisant Save, j'obtiens l'erreur suivante: L'index était hors de portée. Doit être non négatif et inférieur à la taille de la collection. Nom du paramètre: index
Les deux tentatives lancent un INSERT pour le nouvel élément, mais je continue d'obtenir ces erreurs. Y a-t-il quelqu'un qui peut aider?
Si je définis la valeur non enregistrée, elle renvoie une erreur de: System.ArgumentOutOfRangeException: l'index était hors de portée. Doit être non négatif et inférieur à la taille de la collection. – monksy