0


我开始使用 RavenDB,在创建实体并将实体链接到另一个实体时遇到并发异常,例如:

  • 班级 - 列出学生 - 字符串是学生 ID
  • 学生

创建新学生时,我正在获取相关课程并将学生添加到“学生”列表中。我看到这种存储和添加这种关系是我的应用程序的瓶颈。

我该如何解决这个并发问题?或者也许我可以用其他方式进行这种链接?或使用 PatchRequest 更新类,然后我不会遇到并发问题?

4

1 回答 1

2

你有两个选择

  1. 并发失败重试
  2. 减少对 Class 实体的争用。

实际上,学生和班级之间存在多对多关系 - 因此您可以将相关密钥存储在关系的任一侧(或如果需要,也可以存储在两侧)。

如果您的应用程序在课堂上的使用频率高于学生,请尝试在每个学生上放置一个 ClassId 列表。您仍然可以通过查询获取班级中所有学生的列表。

除了 - 我建议使用“Course”而不是“Class”以避免踩到 c# 中的关键字

于 2012-11-20T17:59:09.533 回答