2009-07-21 4 views
1

У меня есть объект Пользователь с отношением «один ко многим» к UserToUserCategories. Когда я загружаю пользователя из базы данных, не изменяйте его и не очищайте сеанс, NHibernate будет выполнять UPDATE пользователя и увеличивать его версию. Мне кажется, что это нежелательное поведение, представьте, что я загружаю сотни пользователей, и 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 

Неправильное отображение? Что мне не хватает?

ответ

Смежные вопросы