2012-01-06 20 views
8

En una aplicación RabbenD multitenant (una base de datos por inquilino y una base de datos 'general' con datos generales de inquilinos), ¿cuál sería la estrategia de creación de índices? (asp.net mvc)Índices de múltiples propietarios en RavenDB en asp.net MVC

En una aplicación simple (no multiusuario), puede crear los índices en global.asax.

  • Teóricamente, podría consultar para cada inquilino y crear los índices para cada inquilino, en global.asax. Pero supongo que sería un gran golpe de rendimiento cuando aumente la cantidad de inquilinos ...
  • No es posible crear índices sobre la creación de inquilinos, ya que los inquilinos existentes deberían poder obtener nuevos índices sobre las actualizaciones.

¿Cuál sería la mejor práctica en cuanto a cómo y cuándo crear estos índices?

Respuesta

10

Puede utilizar este método al iniciar la aplicación, sin preocuparse por el rendimiento.

public static void CreateIndexesForDatabases(Assembly assemblyToScanForIndexingTasks, IDocumentStore documentStore, string[] databases) 
{ 
    var catalog = new CompositionContainer(new AssemblyCatalog(assemblyToScanForIndexingTasks)); 
    foreach (var database in databases) 
    { 
     IndexCreation.CreateIndexes(catalog, documentStore.DatabaseCommands.ForDatabase(database), documentStore.Conventions); 
    } 
} 

simplemente no se olvide de incluir Raven.Client.Extensions

Cuestiones relacionadas