RavenDB并发放

时间:2012-11-20 17:26:32

标签: c# ravendb


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

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

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

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

1 个答案:

答案 0 :(得分:2)

您有两个选择

  1. 重试并发失败
  2. 减少对Class实体的争用。
  3. 实际上,您在学生和班级之间存在多对多的关系 - 因此您可以将相关密钥存储在关系的任一侧(如果需要,可以存储在两侧)。

    如果您的应用在课程中比学生更频繁地工作,请尝试在每个学生上添加一个ClassId列表。您仍然可以通过查询返回班级中所有学生的列表。

    除此之外 - 我建议使用“课程”而不是“课程”来避免踩踏c#

    中的关键字