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
這個映射是否不正確?我錯過了什麼?