流暢なNHibernateを使用して、を使用してマップされたクラスのプロパティがありますVersion
Version(x => x.Version);
オブジェクトを保存すると、予想どおりにVersionプロパティがデータベースに増分されますが、オブジェクトのプロパティの値は時々変更されるだけのようです。
using (var tx = session.BeginTransaction())
{
session.Merge(item);
tx.Commit();
item.Version; // Sometimes this is still 1, when I expect it to be 2.
}
問題は、それが1のままで、さらに変更を加えて再度保存すると、StaleObjectStateExceptionが発生することです。
奇妙なことに、正常に動作し、item.Version値が正しくインクリメントされることがありますが、そうでない場合とそうでない場合の違いがわかりません。
検索してみましたが、これに関するドキュメントが見つからないようです。NHibernatesが期待する動作がバージョンマッピングで何であるかを誰かが説明できますか?
[NHibernateバージョン2.1.2]