public override object ReadFrom(IDataReader reader, ICollectionPersister persister, ICollectionAliases descriptor,
		                                object owner)
		{
			object element = persister.ReadElement(reader, owner, descriptor.SuffixedElementAliases, Session);
			object tempObject = GetIdentifier(values.Count);
			identifiers[values.Count] = persister.ReadIdentifier(reader, descriptor.SuffixedIdentifierAlias, Session);
			object old = tempObject;
			if (old == null)
			{
				values.Add(element); //maintain correct duplication if loaded in a cartesian product			
			}
			return element;
		}
Example #2
0
		public override object ReadFrom(IDataReader reader, ICollectionPersister role, ICollectionAliases descriptor,
		                                object owner)
		{
			object element = role.ReadElement(reader, owner, descriptor.SuffixedElementAliases, Session);
			values.Add(element);
			identifiers[values.Count - 1] = role.ReadIdentifier(reader, descriptor.SuffixedIdentifierAlias, Session);
			return element;
		}
		public override object ReadFrom(IDataReader reader, ICollectionPersister persister, ICollectionAliases descriptor, object owner)
		{
			object element = persister.ReadElement(reader, owner, descriptor.SuffixedElementAliases, Session);
			object id = persister.ReadIdentifier(reader, descriptor.SuffixedIdentifierAlias, Session);
			
			// eliminate duplication if loaded in a cartesian product
			if (!identifiers.ContainsValue(id))
			{
				identifiers[values.Count] = id;
				values.Add(element);
			}
			return element;
		}
		public override object ReadFrom( IDataReader reader, ICollectionPersister persister, object owner )
		{
			object element = persister.ReadElement( reader, owner, Session );
			values.Add( element );
			identifiers[ values.Count - 1 ] = persister.ReadIdentifier( reader, Session );
			return element;
		}