RavenDb - 获取集合的名称

问题描述 投票:0回答:1

RavenDb 在存储对象时似乎将对象名称复数化。因此,

PhoneBook
变为
PhoneBooks
PhoneBookCategory
变为
PhoneBookCategories

对于任何 ByQueryOperation,如果我编写查询,我必须处理集合的名称。例如。在这里进行批量删除:

var queryParameters = new Raven.Client.Parameters
    {
        {
            "ids", ids.ToArray()
        }
    };
var q = new IndexQuery
{
    Query = "from {collectionName} u where id(u) in ($ids)",
    QueryParameters = queryParameters
};
DeleteByQueryOperation op = new DeleteByQueryOperation(q);

现在,我怎样才能确保我得到正确的

collectionName

c# collections ravendb
1个回答
0
投票

文档的 metadata 包含属性

@collection
,它确定文档属于哪个集合。

可以通过调用获取文档的元数据,例如:

var employee = session.Load<Employee>("employees/1-A");
var metadata = session.Advanced.GetMetadataFor(employee);
var collection = metadata["@collection"];

文档元数据 - RavenDB 书籍:
https://ravendb.net/learn/inside-ravendb-book/reader/4.0/2-zero-to-ravendb#document-metadata

获取和修改元数据:
https://ravendb.net/docs/article-page/6.0/Csharp/client-api/session/how-to/get-and-modify-entity-metadata

© www.soinside.com 2019 - 2024. All rights reserved.