새 하위를 추가하려고 할 때 문제가되는 세 가지 클래스가 있습니다.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이었고 저장을 사용하여 AlternateUserAttributes 만 자체 저장하려고하면이 오류가 발생합니다. 색인이 범위를 벗어났습니다. 음수가 아니어야하며 콜렉션의 크기보다 작아야합니다. 매개 변수 이름 : 인덱스
두 시도 모두 새 항목에 대한 INSERT를 사용하고 있지만 이러한 오류가 계속 발생합니다. 도움을 줄 수있는 사람이 있습니까?
저장되지 않은 값을 설정하면 다음 오류를 반환합니다. System.ArgumentOutOfRangeException : 인덱스가 범위를 벗어났습니다. 음수가 아니어야하며 콜렉션의 크기보다 작아야합니다. – monksy