Ravendb SharpRepository+;优化并发

Ravendb SharpRepository+;优化并发,ravendb,sharp-repository,Ravendb,Sharp Repository,想知道是否有办法将存储库的保存/更新操作设置为使用乐观并发?没有看到任何方法可以做到这一点吗?或者默认情况下是这样配置的 我假设你是在谈论基于这个问题的RaveDbRepository 不幸的是,现在没有办法做到这一点。许多RavenDb特定的需求目前无法通过使用SharpRepository与之交互来解决,但我们希望达到这一点 当前,文档存储用于实例化RavendBrespository,然后用于创建IDocumentSession(通过调用documentStore.OpenSession(

想知道是否有办法将存储库的保存/更新操作设置为使用乐观并发?没有看到任何方法可以做到这一点吗?或者默认情况下是这样配置的

我假设你是在谈论基于这个问题的RaveDbRepository

不幸的是,现在没有办法做到这一点。许多RavenDb特定的需求目前无法通过使用SharpRepository与之交互来解决,但我们希望达到这一点

当前,文档存储用于实例化RavendBrespository,然后用于创建IDocumentSession(通过调用documentStore.OpenSession())。由于使用乐观并发的标志在会话本身上,因此目前没有很好的方法来处理这个问题

请在GitHub上为我们发布一个关于这一点的问题,我们将研究如何实现这一点。在我看来,我们有一些选择:

  • 允许对IDocumentSession进行公共或受保护的访问,以便您可以直接或在继承的类中访问会话,并设置该标志

  • 允许从IDocumentsIson而不是DocumentStore实例化RavenDbRepository,以便在创建存储库时进行设置

  • 以某种方式将这些转换为默认约定,尽管我不确定如何


在从IRepository继承的存储库中,我不能在其中实现自定义方法sig吗?然后在实现自定义接口的类中实现它?如果您使用来自GitHub的最新位(NuGet上还没有),我只是将DocumentStore和会话设置为受保护的,以便在继承自RavendBrespository的特定存储库中,您可以访问会话并在那里设置乐观并发标志。在构造函数中,您首先调用基本构造函数以初始化会话,然后设置session.Advanced.UseOptimisticConcurrency=truer。或者,您可以使用自定义方法代替构造函数,但是您仍然需要使用来自GitHub的最新源来访问会话,以便设置适当的标志。