Skip to main content
 首页 » 编程设计

c#之如何在没有给定 RavenDB 索引的情况下删除集合

2024年02月04日22jyk

看到查询删除集合实体的例子;
https://ravendb.net/docs/article-page/4.0/Csharp/client-api/operations/delete-by-query

但我的问题是,如何在不提供索引的情况下删除集合?

举个例子,我像这样创建/插入一个集合到 RavenDB;

using (IDocumentSession session = _documentStore.OpenSession()) 
{ 
    session.Store<TEntity>(entity); 
    session.SaveChanges(); 
} 

我没有创建任何索引。只是将一些数据存储到 RavenDB。 我在 api 中寻找这样的东西;

using (IDocumentSession session = _documentStore.OpenSession()) 
{ 
    session.DeleteAll<TEntity>() 
    session.SaveChanges(); 
} 

但这并不存在。那么如何在没有给定索引的情况下删除实体?

请您参考如下方法:

以下代码将直接在集合上运行,无需创建索引:

var queryToDelete = new IndexQuery { Query = $"FROM {collection}" }; 
var operation = store.Operations.Send(new DeleteByQueryOperation(queryToDelete, new QueryOperationOptions { AllowStale = false })); 
operation.WaitForCompletion(TimeSpan.FromSeconds(60));