Hi!
I have 2 classes:
first one - "ConstructionElement", here's the mapping:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Entities" namespace="Entities.Business">
    <class name="ConstructionElement" table="CNSTR_ELEM">
        <id name="Id" column="ID" type="Int64">
            <generator class="sequence">
       <param name="sequence">CNSTR_ELEM_SEQ</param>
    </generator>
        </id>
    <component name="MaterialDescription" class="Entities.Base.MultiNameEntity">
      <bag name="NamesI" table="CNSTR_ELEM_CD" lazy="false" cascade="all">
        <key column="PARENT_ID"/>
        <composite-element class="Entities.Localization.LocalizedString, Entities">
          <property column="CULTURE_ID" name="Language" type="Common.Enums.RequestedLanguage, Common"/>
          <property column="TEXT" name="Value" type="System.String"/>
        </composite-element>
      </bag>
    </component>
    </class>
</hibernate-mapping>
second - MultiNameEntity:
Code:
public class MultiNameEntity
{
        private ObservableCollection<LocalizedString> _names;
        private IList<LocalizedString> _namesI;
      
        protected virtual IList<LocalizedString> NamesI
        {
            get
            {
                if (_names != null)
                    return _names;
                return _namesI;
            }
            set { _namesI = value; }
        }
        public virtual ObservableCollection<LocalizedString> Names
        {
            get
            {
                if (_names == null)
                {
                    if (_namesI != null && NHibernateUtils.IsInitialized(_namesI))
                    {
                        _names = new ObservableCollection<LocalizedString>();
                        _names.AddRange(_namesI);
                    }
                }
                return _names;
            }
            set { _names = value; }
        }
}
When I'm trying to save instance of ConstructionElement, following exception occurs:
Code:
Unable to cast object of type 'System.Collections.ObjectModel.ObservableCollection`1[Entities.Localization.LocalizedString]' to type 'NHibernate.Collection.IPersistentCollection'.
If I'm bringing <bag> mapping out of <component> tag, then save\update works fine.