如何从clr类型获取Raven DB索引名称

时间:2014-01-31 13:43:12

标签: c# ravendb

有没有办法可以从c#中的相应类中获取索引名称?例如:我有一个名为Users_ByEmail的类,我知道Raven为我创建了名为Users/ByEmail的索引,但我想从Raven方法中获取它。

我需要这样的东西:

public class Users_ByEmail : AbstractIndexCreationTask<User>
....

string indexName = documentStore.GetIndexName(typeof(Users_ByEmail));

Raven客户端是否有任何暴露方法?这很有用,因为我不想在从DataBaseCommands调用UpdateByIndex方法时使用字符串。

1 个答案:

答案 0 :(得分:2)

您可以通过创建类的实例并使用IndexName属性来获取名称。

string indexName = new Users_ByEmail().IndexName;

我同意如果API有一些不依赖于字符串的重载会很好。像下面这样的东西会很好:

documentStore.DatabaasCommands.UpdateByIndex<Users_ByEmail>(...)

如果您的代码中有很多这些调用,您可以考虑编写一个可以提供此功能的扩展方法。