Hi,
I have entity User with one-to-many relationship to
UserToUserCategories. When I load user from database, do not change it
and than flush the session, NHibernate will performs UPDATE of the
user and increment it's version. It seems to me as unwanted behaviour,
imagine that I load hundred of users and NHibernate would update them
all when flushing. Here is the code:
public abstract class EntityBase
{
public virtual Guid Id { get; set; }
public virtual int Version { get; set; }
}
public class User : EntityBase
{
public virtual IList<UserToUserCategory> UserToUserCategories
{ get; set; }
}
public class EntityBaseMap<T> : ClassMap<T> where T : EntityBase
{
public EntityBaseMap()
{
this.OptimisticLock.Version();
this.DynamicUpdate();
this.Id(t => t.Id);
this.Version(t => t.Version);
}
}
public class UserMap : EntityBaseMap<User>
{
public UserMap()
{
this.HasMany(u => u.UserToUserCategories)
.NotFound.Ignore()
.Cascade.All()
.LazyLoad()
.AsBag()
.WithTableName("UserToUserCategory");
}
}
session = SessionSource.CreateSession();
var user = (from u in session.Linq<User>() select u).FirstOrDefault();
session.Flush(); // here NHibernate does UPDATE statement of user's
version
Is this mapping incorrect? What am I missing?
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---