Raven.Server.exe.configで楽観的同時実行性をtrueに設定する方法はありますか?または、データベースレベルで何らかの形で適用できますか?RavenDBのサイトで、UseOptimisticConcurrency = trueの設定についていくつか言及されていますが、コード内のセッションレベルにあるように見えます。
public void Save<T>(T objectToSave)
{
using (IDocumentSession session = Database.OpenSession())
{
session.Advanced.UseOptimisticConcurrency = true; // This is the setting
Guid eTag = (Guid)session.Advanced.GetEtagFor(objectToSave);
session.Store(objectToSave, eTag);
session.SaveChanges();
}
}
その設定がサーバー全体のどこかに存在するかどうかを知りたいので、コードでセッションごとに指定する必要はありません。
編集:上記のコードは次のエラーを生成します。理由を見つけようとしています...
編集2:わかりました、私は進歩しています。オブジェクトを取得し、すべて同じセッション内でGetEtagFor()を呼び出すと、有効なeTagが取得されます。ですから、私の主な質問は次のとおりです。クライアントUI内でセッションを使用して、アプリの起動時にセッションを1回開き、最後に閉じる方法は正しいですか。そして...eTagを保存する正しい方法は何ですか?上でコーディングした方法では、eTagは保存する直前に取得されますが、これは間違った方法だと思います。オブジェクトが最初に取得されたときにeTagを取得する必要があると思います。しかし、最初にオブジェクトのリストを取得するとき、それぞれをループして、それらに対してGetEtagFor()を呼び出す必要がありますか?正しくないようです...