以下是代码。我把它简化为零。基本上我打开一个会话,加载电影,测试该锁定工作,然后逐出该项目,然后尝试再次锁定它,它会抛出异常。谁看过这个吗。如果有人能提供帮助,我将不胜感激。没有自定义拦截器或任何东西。我使用流利的nhibernate映射和nhibernate 3.3.1.4000。
var session = SessionFactory.OpenSession();
var m = session.Get(movie.Id);
session.Lock(m,LockMode.None);
session.Evict(米);
session.Lock(m,LockMode.None);
我创建了一个简单的类映射来缩小问题范围。该问题似乎是标记为属性的延迟加载中的错误。当延迟加载的电话号码被注释掉时,锁定工作正常,但是当它包含在映射中时会崩溃。
//DynamicUpdate();
//LazyLoad();
Id(x => x.Id);
Map(x => x.Name).Unique();
Map(x => x.CleanName);
Map(x => x.PhoneNumber).LazyLoad();
HasMany(o => o.CountryList).Table("Country").Element("String").Cascade.AllDeleteOrphan().LazyLoad();
//HasMany(x => x.AddressList).Cascade.AllDeleteOrphan().Inverse().LazyLoad();
Version(x => x.EditDate);