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.