2014-01-31 36 views
1

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

我需要的是这样的:

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

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

是乌鸦客户有任何这样做暴露的方法?这很有用,因为我不想在使用DataBaseCommands调用UpdateByIndex方法时使用字符串。

回答

2

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

string indexName = new Users_ByEmail().IndexName; 

我同意这会很好,如果API有一些重载,不依赖字符串。像下面的内容将是不错:

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

如果你有很多你的代码这些调用的,你可以考虑写这会给你的扩展方法。

+0

是的。那会做。谢谢! – Sarrus