以下はコードです。私はそれを何もないところまで単純化しました。基本的に、セッションを開き、ムービーをロードし、ロックが機能することをテストしてから、アイテムを削除してから、再度ロックを試みると、例外がスローされます。誰もこれを見たことがありますか。誰かが助けてくれれば幸いです。カスタムインターセプターなどはありません。流暢な nhibernate マッピングと nhibernate 3.3.1.4000 を使用しています。
var セッション = 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);