2014-01-31 2 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

관련 문제