Hi

I have a very strange problem. I implement for a small project some 
unit-testing for the nhibernate queries.
The one-to-many is working correctly if I get a user which already exists 
and has categories but not if I create a new user with new categories.

Here's an extract from the mapping:

?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
assembly="Homebank.Entities" namespace="Homebank.Entities">
<class name="User" table="[User]">
<id name="DataId" column="DataId">
<generator class="identity" />
</id>
<property name="Name" column="Name" not-null="true" />
<bag name="Categories" inverse="true">
<key column="User_DataId" />
<one-to-many class="Category" />
</bag>
</class>
</hibernate-mapping>

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
assembly="Homebank.Entities" namespace="Homebank.Entities">
<class name="Category" table="Category">
<id name="DataId" column="DataId">
<generator class="identity" />
</id>
<property name="Name" column="Name" not-null="true" />
<many-to-one name="User" column="User_DataId" class="User" not-null="true" 
/>
</class>
</hibernate-mapping>

And here's the code:

User user = new User() { Name = "UserForTestingCategoryCollection" };
myUserManager.Save(user);

Category c1 = new Category() { Name = "c1", User = user };
Category c2 = new Category() { Name = "c2", User = user };
Category c3 = new Category() { Name = "c3", User = user };
myCategoryManager.Save(c1);
myCategoryManager.Save(c2);
myCategoryManager.Save(c3);

User u = myUserManager.Get(user.DataId);

Assert.AreEqual(3, u.Categories.Count);

Those managers have the same share session which basically just opens a 
transaction to save and retrieves the item by Session.Get<T>(id).
The user will have 0 categories.

Has anyone an idea why this is not working as expected?

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/nhusers/-/0lFtwSSox5oJ.
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