Thx for the help.  I changed the mapping to use <bag> and it worked
fine.  I didn't have to change my domain object at all it still
references IList<T>.  Note I have lazy loading set to false at the
class level and the <bag> level.

p.s. I didn't mean to offend anyone by saying I didn't want to use
Iesi.collections.  I totally agree .net needs a set, it's a real joke
they don't have one.  I was just trying to make the move to nhib a
little easier for some of my developers.

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="Entity"
                   namespace="ClaimAudit.Entity">
  <class name="ClaimAudit.Entity.User" lazy="false" table="users">
    <id name="Id">
      <generator class="native"/>
    </id>
    <bag name="Accounts" table="user_accounts" lazy="false"
cascade="save-update" generic="true">
        <key column="userid"/>
        <many-to-many column="accountid" class="Account"/>
    </bag>
    <property name="Username"/>
  </class>
</hibernate-mapping>

On Oct 16, 1:36 pm, Fabio Maulo <[email protected]> wrote:
> If you want use <set> you should use ISet in the classif you want use IList
> you should use <bag> in the mapping.
>
> 2009/10/16 welzie <[email protected]>
>
>
>
>
>
> > I'm sure this gets asked all the time but here goes.  I am having
> > problems figuring out how to nhib to populate a collection of
> > objects.  I do NOT want to use the Iesi.collections.  I do NOT want to
> > introduce a dependency on those classes throughout my application.
>
> > Is there anyway to get nhib to populate a collection with an
> > implementation of System.Collections.Generic.IList<T>?  Surely there
> > is a solution to this or does everyone just reference
> > Iesi.Collection.ISet throughout their apps?
>
> > Below is the error I get when nhib tries to populate the Accounts
> > property of the User class.  I am using nhib 2.1.0GA. (Account mapping
> > and class not shown)
>
> > ERROR:
> > System.InvalidCastException : Unable to cast object of type
> > 'NHibernate.Collection.Generic.PersistentGenericSet`1
> > [ClaimAudit.Entity.Account]' to type
> > 'System.Collections.Generic.IList`1[ClaimAudit.Entity.Account]'.
>
> > MY CLASS:
> > using System.Collections.Generic;
> > public class User
> > {
> >        public virtual int Id {get; set;}
> >        private IList<Account> accounts = new List<Account>();
> >        public virtual IList<Account> Accounts {get{return accounts;}
> > set{accounts = value;}}
> >        public virtual string Username {get; set;}
> > }
>
> > MAPPING:
> > <?xml version="1.0" encoding="utf-8" ?>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> >                   assembly="Entity"
> >                   namespace="ClaimAudit.Entity">
> >  <class name="ClaimAudit.Entity.User" lazy="false" table="users">
> >    <id name="Id">
> >      <generator class="native"/>
> >    </id>
> >    <set name="Accounts" table="user_accounts">
> >        <key column="userid"/>
> >        <many-to-many column="accountid" class="Account"/>
> >    </set>
> >    <property name="Username"/>
> >    </many-to-one>
> >  </class>
> > </hibernate-mapping>
>
> --
> Fabio Maulo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to