新しい子を追加しようとすると問題を引き起こす3つのクラスがあります。NHibernateと複合コレクションを持つ新しいアイテムを子コレクションに追加する
彼らは次のとおりです。
User {
List attributesGroup>
}
AttributesGroup {
attributesGroupId
value
}
AttributesGroupId {
attrName
userId
}
マッピングは次のとおりです。
<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>
私はに項目を追加する をしようとすると、私はしかし、問題なくユーザークラス上の項目とクラスSaveUpdateを削除することができますコレクション:
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);
ローカウントがeであるというエラーが表示されます1と予想されていたが0だったので、Saveを使用してAlternateUserAttributesのみを自己として保存しようとすると、このエラーが発生します。 インデックスが範囲外です。負でなく、コレクションのサイズより小さくなければなりません。 パラメータ名:index
両方の試行で新しい項目のINSERTが行われていますが、これらのエラーが発生しています。助けることができる人はいますか?
保存されていない値を設定すると、エラーが返されます。 System.ArgumentOutOfRangeException:インデックスが範囲外です。負でなく、コレクションのサイズより小さくなければなりません。 – monksy