[Missing <summary> documentation for "N:NHibernate.Collection"]

Classes

  ClassDescription
Public classAbstractPersistentCollection
Base class for implementing IPersistentCollection.
Public classPersistentArrayHolder
A persistent wrapper for an array. lazy initialization is NOT supported
Public classPersistentBag
An unordered, unkeyed collection that can contain the same element multiple times. The .NET collections API has no Bag class. Most developers seem to use ILists to represent bag semantics, so NHibernate follows this practice.
Protected classPersistentBag..::..ClearDelayedOperation
Protected classPersistentBag..::..SimpleAddDelayedOperation
Public classPersistentIdentifierBag
Implements "bag" semantics more efficiently than a regular PersistentBag by adding a synthetic identifier column to the table.
Public classPersistentList
A persistent wrapper for an IList
Protected classPersistentList..::..AddDelayedOperation
Protected classPersistentList..::..ClearDelayedOperation
Protected classPersistentList..::..RemoveDelayedOperation
Protected classPersistentList..::..SetDelayedOperation
Protected classPersistentList..::..SimpleAddDelayedOperation
Protected classPersistentList..::..SimpleRemoveDelayedOperation
Public classPersistentMap
A persistent wrapper for a IDictionary. Underlying collection is a Hashtable.
Protected classPersistentMap..::..ClearDelayedOperation
Protected classPersistentMap..::..PutDelayedOperation
Protected classPersistentMap..::..RemoveDelayedOperation
Public classPersistentSet
.NET has no design equivalent for Java's Set so we are going to use the Iesi.Collections library. This class is internal to NHibernate and shouldn't be used by user code.
Protected classPersistentSet..::..ClearDelayedOperation
Protected classPersistentSet..::..SimpleAddDelayedOperation
Protected classPersistentSet..::..SimpleRemoveDelayedOperation

Interfaces

  InterfaceDescription
Protected interfaceAbstractPersistentCollection..::..IDelayedOperation
Public interfaceIPersistentCollection

Persistent collections are treated as value objects by NHibernate. ie. they have no independent existence beyond the object holding a reference to them. Unlike instances of entity classes, they are automatically deleted when unreferenced and automatically become persistent when held by a persistent object. Collections can be passed between different objects (change "roles") and this might cause their elements to move from one database table to another.

NHibernate "wraps" a collection in an instance of IPersistentCollection. This mechanism is designed to support tracking of changes to the collection's persistent state and lazy instantiation of collection elements. The downside is that only certain abstract collection types are supported and any extra semantics are lost.

Applications should never use classes in this namespace directly, unless extending the "framework" here.

Changes to structure of the collection are recorded by the collection calling back to the session. Changes to mutable elements (ie. composite elements) are discovered by cloning their state when the collection is initialized and comparing at flush time.