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.
