Hi,

I have a table called ActivityCategory which has a hierarchical
relationship.  The table is as follows:

CREATE TABLE ActivityCategory(
        Id int NOT NULL IDENTITY PRIMARY KEY,
        Description nvarchar(250) NOT NULL,
        ParentId int NULL
)

I have a mapping file as follows:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="DataModel"
    namespace="DataModel">

        <class name="ActivityCategory" table="ActivityCategory">
                <id name="Id" column="Id" type="int" unsaved-value="0">
                        <generator class="identity"/>
                </id>
                <property name="Description" />

                <many-to-one name="Parent" class="ActivityCategory"
column="ParentId" />

                <set name="Categories" table="ActivityCategory" cascade="all">
                        <key column="ParentId" />
                        <one-to-many class="ActivityCategory" />
                </set>
        </class>
</hibernate-mapping>

and my class definition is:

    public class ActivityCategory
    {
        public virtual ISet<ActivityCategory> Categories { get; set; }
        public virtual string Description { get; set; }
        public virtual int Id { get; set; }
        public virtual ActivityCategory Parent { get; set; }
    }

When I add a child category to the Categories collection of the
parent, and save the parent then the child category does not save:

                ActivityCategory category =
session.Get<ActivityCategory>(1);
                ActivityCategory childCategory = new ActivityCategory
{ Description = "New Test Category" };
                category.Categories.Add(childCategory);

                session.SaveOrUpdate(category);

If I change it around and do the following the child category does
save:

                ActivityCategory category =
session.Get<ActivityCategory>(1);
                ActivityCategory childCategory = new ActivityCategory
{ Description = "New Test Category" };
                childCategory.Parent = category;

                session.SaveOrUpdate(childCategory);

How do I get the first scenario to work (saving the child categories
when saving the parent category)?

I am using a SQL Compact database and using the SQL Ce dialect and
driver.

Regards
Jerrie Pelser

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to nhusers@googlegroups.com
To unsubscribe from this group, send email to 
nhusers+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to