如果我没有任何文件,我无法在ravendb中创建一个集合

时间:2012-04-13 11:58:39

标签: database c#-4.0 collections nosql ravendb

我在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;
    }

1 个答案:

答案 0 :(得分:2)

在RavenDB中,集合是虚拟的,只要您在该文档中至少有一个文档,它们就会存在。