It does, icollection doesn't have index, ilist does.

Med vänliga hälsningar,
Kim Johansson
Industritorget Sweden AB
Söndrumsvägen 29
302 39 Halmstad
tel:  035 - 260 32 00
fax: 035 - 12 24 83
epost: [email protected] 
webb: http://www.industritorget.se



-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of 
Peter Lehmann
Sent: den 19 april 2010 14:36
To: nhusers
Subject: [nhusers] Re: nhibernate list index are not set when save a collection

@Fabio thank for fast anwer, will try to use <index> and see if that helps

@Kim IList impl ICollection, so it makes no diff for this.

On 19 Apr., 14:01, Fabio Maulo <[email protected]> wrote:
> In NH2.1.2 we have a bug for <list-index> node. For NH2.1.2 you should 
> use <index>
>
> On Mon, Apr 19, 2010 at 4:33 AM, Lehmann, Peter <[email protected]>wrote:
>
>
>
>
>
> >  Hi,
>
> > how can one get nhibernate to create the index number when using 
> > list on save?
>
> > here is a sample code for this.
> > sql:CREATE TABLE Person(
> > [Id] UNIQUEIDENTIFIER NOT NULL,
> > [Name] NVARCHAR(35) NOT NULL,
> > CONSTRAINT [Person_Pk] PRIMARY KEY CLUSTERED([Id])
> > )
>
> > CREATE TABLE Skill(
> > [Id] UNIQUEIDENTIFIER NOT NULL,
> > [Name] NVARCHAR(35) NOT NULL,
> > [IndexNumber] INT NOT NULL,
> > [PersonId] UNIQUEIDENTIFIER NOT NULL, CONSTRAINT [Skill_Pk] PRIMARY 
> > KEY CLUSTERED([Id]), CONSTRAINT [Person_Skill_Fk] FOREIGN KEY 
> > ([PersonId]) REFERENCES [Person]( [Id]), CONSTRAINT [Skill_Ak1] 
> > UNIQUE NONCLUSTERED([PersonId], [IndexNumber]))
>
> > domain entities and test save
> > public class Person
> >     {
> >         public Person()
> >         {
> >             Skills = new List<Skill>();
> >         }
> >         public Guid Id { get; set; }
> >         public string Name { get; set; }
> >         public ICollection<Skill> Skills { get; protected set; }
> >     }
>
> >     public class Skill
> >     {
> >         protected Skill()
> >         {
> >         }
>
> >         public Skill(Person person)
> >             :this()
> >         {
> >             Person = person;
> >         }
> >         public Guid Id { get; set; }
> >         public string Name{ get; set; }
> >         public int Index { get; protected set; }
> >         public Person Person { get; protected set; }
> >     }
>
> >     public class CreateObjectTests
> >     {
> >         public void Test()
> >         {
> >             Configuration configuration = new 
> > Configuration().Configure( typeof(Person).Assembly, 
> > "NhibernateListSample.Cfg.xml");
>
> >             var sessionFactory = 
> > configuration.BuildSessionFactory();
> >             var session = sessionFactory.OpenSession();
> >             var person = new Person {Id = new Guid( 
> > "2a1977a8-815a-4e53-a36e-0a5381487ea3"), Name = "Test User 1"};
> >             person.Skills.Add(new Skill(person){Id = new Guid( 
> > "b42c3007-213f-4169-b686-fd1b4629f787"), Name = "Skill 1"});
>
> >             person.Skills.Add(new Skill(person){Id = new Guid( 
> > "1c198810-672d-4843-bf18-b47762f3c473"), Name = "skill 2"});
>
> >             session.Save(person);
> >         }
> >     }
>
> > mapping:
> > <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping 
> > xmlns="urn:nhibernate-mapping-2.2" >
> >   <class name="Person" lazy="false" table="Person">
> >     <id name="Id" column="Id" unsaved-value="
> > 00000000-0000-0000-0000-000000000000" type="guid">
> >       <generator class="guid.comb" />
> >     </id>
> >     <property name="Name" column="Name" not-null="true" length="35" 
> > />
> >     <list name="Skills" cascade="all" batch-size="10" inverse="true" 
> > lazy= "true">
> >       <key column="PersonId" />
> >       <list-index column="IndexNumber" base="1" />
> >       <one-to-many class="Skill" />
> >     </list>
> >   </class>
> >   <class name="Skill" lazy="false" table="Skill">
> >     <id name="Id" column="Id" unsaved-value="
> > 00000000-0000-0000-0000-000000000000" type="guid">
> >       <generator class="guid.comb" />
> >     </id>
> >     <property name="Name" column="Name" not-null="true" length="35" 
> > />
> >     <property name="Index" column="IndexNumber" insert="false" update="
> > false" />
> >     <many-to-one name="Person" class="Person" cascade="none" 
> > lazy="false"/>
> >   </class>
> > </hibernate-mapping>
>
> > Med Venlig Hilsen / Best Regards
>
> > Peter Lehmann
>
> >  --
> > 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]<nhusers%2bunsubscr...@googlegro
> > nhusers+ups.com­>
> > .
> > For more options, visit this group at 
> >http://groups.google.com/group/nhusers?hl=en.
>
> --
> 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 
> athttp://groups.google.com/group/nhusers?hl=en.- Skjul tekst i 
> anførselstegn -
>
> - Vis tekst i anførselstegn -

--
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.

-- 
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