Por que minhas visualizações pré-geradas do EF Code First não têm efeito?

Eu tenho ~ 300 DbSets no meu contexto ea primeira consulta após o carregamento do aplicativo (um FirstOrDefault () onde em um campo indexado) leva ~ 40 segundos.

Para melhorar isso, estou tentando usar visualizações pré-geradas no código 4.3.1 da EF usando o modelo T4 aqui:

Entity Framework Code First View Generation Templates On Visual Studio Code Gallery

Eu compilo, mas não vejo diferença de desempenho. Eu estava esperando / assumindo que isso ajudaria a dolorosa boot lenta que estou experimentando, mas sem sorte.

Deve ajudar? Se não, para que exatamente as visualizações pré-geradas são usadas? E há algo que eu possa fazer para melhorar o tempo de boot? Dividir meu contexto é doloroso para dizer o mínimo.

Certos ORMs como o NHibernate e o EF são simplesmente lentos para iniciar. Em vez de tentar “corrigir” essa lentidão, gosto de eliminar o problema certificando-se de que o IIS acione esse código sempre que o pool de aplicativos for iniciado. Para isso, para corrigir o problema, você deve configurar o IIS para iniciar automaticamente o pool de aplicativos. Esta solução está disponível apenas para o .NET 4 e IIS7.5 e mais recente.

Você deseja implementar uma class com IProcessHostPreloadClient que carrega um ObjectContext e configurar seu aplicativo para usá-lo adicionando um nó serviceAutoStartProviders ao seu web.config e definindo startMode = “AlwaysRunning” para o pool de aplicativos.

Por favor, consulte o blog de Scott Gu para mais detalhes.

Acontece que ele realmente parece procurar as visualizações pré-geradas na assembly onde a primeira entidade referenciada está , não na assembly onde está o DbContext. Veja mais discussão aqui: http://blog.3d-logic.com/2012/06/13/entity-framework-codefirst-view-generation-templates-on-visual-studio-code-gallery/#comment-76 .

Para contornar isso, criei uma nova entidade e a coloquei na assembly do contexto e a listei como o primeiro DbSet. Agora, ele pega e funciona bem (exceto que isso é ridículo).