C# 删除后如何在RavenDB中等待结果更新

C# 删除后如何在RavenDB中等待结果更新,c#,repository-pattern,ravendb,C#,Repository Pattern,Ravendb,我正在使用Raven DB的存储库模式。我的存储库界面是 public interface IRepository<T> where T : Entity { IEnumerable<T> Find(Func<T, bool> exp); void Delete(T entity); void Save(); ... } 问题是,如果我多次运行此测试,这些项实际上正在被删除(一次2-3项)。我看到有一个IDocumentQue

我正在使用Raven DB的存储库模式。我的存储库界面是

public interface IRepository<T> where T : Entity
{
    IEnumerable<T> Find(Func<T, bool> exp);
    void Delete(T entity);
    void Save();
    ...
}
问题是,如果我多次运行此测试,这些项实际上正在被删除(一次2-3项)。我看到有一个IDocumentQuery具有WaitForNonSaleResults方法

IDocumentQuery WaitForNonSaleResults();
但我在NuGet安装的Raven.Client.Lightweight命名空间中找不到它

总之如何等待数据库更新以及如何读取新数据。我做错什么了吗?谢谢你的帮助

Session.Query().Customize(x=>x.waitForNonSaleResults())
Session.Query<Foo>().Customize(x=>x.WaitForNonStaleResults()) 
请注意,不建议使用此选项。 至少使用WaitForNonSalesultsAsonow

根据ayende在以下文件中的回复:


同一接口IDocumentQuery在同一命名空间Raven.Client中的定义似乎不同。但是,有两个不同的程序集提供此接口:Raven.Client.dll和Raven.Client.Lightweight.dll。NuGet为我提供了更晚的library.Raven.Client.dll已经好几个月没有使用了,您使用的是什么版本?无论如何,roja的答案是正确的one@Ayende,我使用了最新的稳定版本,即359,我还尝试了不稳定版本358。是的,当我查看样本时,这有点混乱,我想这些需要更新。谢谢你的回答。
[Test]
public void DeleteValueTest()
{
    //resolve repository
    var repository = ContainerService.Instance.Resolve<IRepository<DummyType>>();
    Func<DummyType, bool> dummyTypeExpr = item => item.GetType() == typeof(DummyType);

    //find all entries of dummy types and mark for deletion
    var items = repository.Find(dummyTypeExpr);
    foreach (var item in items)
    {
        repository.Delete(item);
    }
    //commit changes
    repository.Save();


    //populate all dummy types, shall be nothing in there
    items = repository.Find(dummyTypeExpr);
    int actualCount = items.Count();
    int expectedCount = 0;

    Assert.AreEqual(expectedCount, actualCount);
}
RepositoryTest.DeleteValueTest : FailedExecuting query '' on index 'dynamic/DummyTypes' in 'http://localhost:8080'
Query returned 5/5 results
Saving 1 changes to http://localhost:8080
Executing query '' on index 'dynamic/DummyTypes' in 'http://localhost:8080'
Query returned 4/5 results

Expected: 0
But was:  4
IDocumentQuery<T> WaitForNonStaleResults();
Session.Query<Foo>().Customize(x=>x.WaitForNonStaleResults())