完全に明白な答え (RTFM) があるかもしれない質問をして申し訳ありませんが、ここで言及されている「バージョン プロパティ」を実際に機能させるにはどうすればよいでしょうか? こちらの Ayende のサイトへのリンクと、こちらの github リポジトリへのリンクは、これが可能であることを示唆しています。同じ問題を説明しているが、実際には明確な解決策が投稿されていない、この他の SO リンクもあります。また、NSB のサンプル コードや、この機能に関連するリリース ノートやドキュメントを見つけることもできませんでした。ただし、複数のワーカー スレッドと ReadCommited を使用して saga を実行する人にとっては重要な知識です。
バージョンと呼ばれる整数プロパティをサガ データ クラスに追加し、タイムスタンプ/行バージョンをサガ データ テーブルに追加するのと同じくらい簡単ですか? これは本当にサンプルのどこかにありますか?私は正しい場所を探していませんか?
また、私が投稿したコメントに基づいて、NSB 3.x にこの機能に関連するバグがあるようです。この機能を利用するには 4.x にアップグレードする必要がありますか? または 3.x で機能させる簡単な方法はありますか?
ありがとう!
編集:
以下のJohn Simonの回答を使用して、最初に次のNSBバージョンを使用してバグに遭遇しました。
NHibernate: 3.3.3.4001
NServiceBus: 4.3.1
NServiceBus.Host: 4.3.1
NServiceBus.Interfaces: 4.3.3
NServiceBus.NHibernate: 4.3.0
NServiceBus.StructureMap: 4.3.1
私は github でこの問題を開き、何度か行ったり来たりした後、修正を含む開発ビルドを試し、これを機能させました。正式な修正は、NServiceBus.NHibernate v4.4.0 でリリースされました。
答えの私のバリエーションは、これをタイムスタンプSQL列で使用することでした:
[RowVersion]
public virtual byte[] Version { get; set; }
数日間ハンマーで叩いた後、見栄えが良くなりました。