Jak udostępnić RavenDB DocumentStore do wywoływania API

Mam aplikację MVC4 używającą RavenDB jako magazynu danych. Aplikacja ma warstwy MVC / Web, Domain, Data i Security.

Piszę niestandardowe członkostwo i dostawców ról, którzy muszą zainicjować bazę danych i uzyskać dostęp do DocumentStore. Piszę te klasy z warstwy Security i chciałbym użyć singleton DocumentStore (ustawionego w aplikacji), ale nie wiem, jak uzyskać do niego dostęp.

Inne przykłady, które widzę w pisaniu niestandardowych dostawców dla RavenDB, tworzą nowe instancje DocumentStore w ramach metod Provider.Initialize (), ale wydaje się, że łamie to zasadę posiadania jednego DocumentStore na serwer.

Obecnie tworzę pojedynczą instancję RavenDB DocumentStore w Application_Start (). Mam kontroler bazowy w warstwie MVC / Web, który obsługuje DocumentStore.Session (s).

Czy istnieje sposób na osiągnięcie tego? Czy powinienem przenieść moją logikę bezpieczeństwa do warstwy MVC / Web, aby uprościć sprawy?

questionAnswers(2)

yourAnswerToTheQuestion