У меня есть сущность Пользователь с отношением один-ко-многим к UserToUserCategories. Когда я загружаю пользователя из базы данных, не меняю его, а затем очищаю сеанс, NHibernate выполнит ОБНОВЛЕНИЕ пользователя и увеличит его версию. Мне кажется это нежелательным поведением, представьте, что я загружаю сотни пользователей, и NHibernate обновит их всех при сбросе.
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
Это отображение неверно? Чего мне не хватает?