我在ravendb中创建了一个文档。使用session.advanced.getmetadata(参见代码),我给元数据中的Raven-Entity-Name命名,之后我在同一个函数中删除了该文档。然后我看到集合也被删除。如果我从手动删除文件raven studio然后该集合仍保留在数据库中。即使代码部分没有文档,集合如何仍然存在?提前谢谢!!
我的c#代码是:
public CreateCollectionResult CreateCollection(string databaseName, string collectionName)
{
CreateCollectionResult createCollectionResult = new CreateCollectionResult();
Collection collection1234 = new Collection();
try
{
using (var session = documentStore.OpenSession(databaseName))
{
Guid guid = new Guid("12345678-1111-1111-2222-000000000000");
session.Store(collection1234, guid, "april-Days/10");
session.Advanced.GetMetadataFor<Collection>(collection1234)[Constants.RavenEntityName] = collectionName;
//session.Delete<Collection>(collection1234);
session.SaveChanges();
createCollectionResult.IsOperationSuccessfull = true;
}
}
//exception if database not found
catch (InvalidOperationException ex)
{
createCollectionResult.IsOperationSuccessfull = false;
createCollectionResult.Error = ex;
}
return createCollectionResult;
}
答案 0 :(得分:2)
在RavenDB中,集合是虚拟的,只要您在该文档中至少有一个文档,它们就会存在。