Hello all, I'm running into some issues with NH and child collections.
Currently I'm using NHibernate + Fluent; t
Here my entities:
public class Parent : Entity
{
private ICollection<Child> m_children = new HashedSet<Child>();
public virtual string Name { get; set; }
public virtual ICollection<Child> Children { get { return m_children; }
set { m_children = value; } }
}
public class Child : Entity
{
public virtual Parent ParentObj { get; set; }
public virtual String MoreInformation { get; set; }
}
And here my mappings:
public class ParentMap : ClassMap<Parent>
{
public ParentMap()
{
Id(x => x.Id)
.GeneratedBy.Identity()
.UnsavedValue(0);
Version(x => x.HB_Version);
Map(x => x.Name, "Name")
.Not.Nullable();
HasMany<ContainerHistory>(x => x.History)
.AsSet()
.LazyLoad()
.Cascade.AllDeleteOrphan();
}
}
public class ChildMap : ClassMap<Child>
{
public ChildMap()
{
Id(x => x.Id)
.GeneratedBy.Identity()
.UnsavedValue(0);
Version(x => x.HB_Version);
References(x => x.Container).Index("IX_Container");
Map(x => x.MoreInformation, "MoreInformation").Not.Nullable();
}
}
The problem is that whenever I add a new item to the Parent.Children
collection, an update is performed on all previous child items of the
collection.. using NHibernate Profiler I found out that only the version
(HB_Version field) is being updated (incremented by 1 each time I add a new
item to the collection).
I tried using .Not.OptimisticLock() in the HasMany map and even in the
References mal (in ChildMap) but the problem remains.
I'm missing something? Or it's the desired behaviour that every time the
parent is modified all the child elements are updated aswell?
Any help or suggestion will be greatly appreciated!!!
Kind regards,
José.-
P.S.: Please excuse my english :)
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/groups/opt_out.