2

下面是代码。我已经将其简化为一无所有。基本上我打开一个会话,加载电影,测试锁定是否有效,然后驱逐该项目,然后再次尝试锁定它并引发异常。有没有人见过这个。如果有人可以提供帮助,我将不胜感激。没有自定义拦截器或任何东西。我使用流利的 nhibernate 映射和 nhibernate 3.3.1.4000。

var session = SessionFactory.OpenSession();

var m = session.Get(movie.Id);

session.Lock(m, LockMode.None);

session.Evict(m);

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);
4

0 回答 0