0


RavenDB の使用を開始しましたが、エンティティを作成し、そのエンティティを別のエンティティにリンクすると、同時実行例外が発生します。たとえば、次のようになります。

  • クラス - 学生のリスト - 文字列は学生 ID です
  • 学生

新しい生徒を作成するとき、関連するクラスを取得し、その生徒を「生徒」リストに追加します。このリレーションの保存と追加が、アプリケーションのボトルネックであることがわかりました。

この並行性の問題を解決するにはどうすればよいですか? または、このリンクを他の方法で行うことができますか?または、クラスを PatchRequest で更新すると、同時実行性の問題は発生しませんか?

4

1 に答える 1

2

2 つのオプションがあります

  1. 同時実行エラーで再試行
  2. Class エンティティでの競合を減らします。

実際、生徒とクラスの間には多対多の関係があるため、関連するキーを関係のいずれかの側 (または必要に応じて両側) に格納できます。

アプリが生徒よりもクラスで頻繁に動作する場合は、各生徒に ClassIds のリストを配置してみてください。クエリを使用して、クラス内のすべての生徒のリストを取得できます。

余談ですが、C#でキーワードを踏まないように、「クラス」ではなく「コース」をお勧めします

于 2012-11-20T17:59:09.533 に答える