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%[email protected]>
> .
> 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 at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to