Sulla prima query EF compila il modello. Questo può richiedere del tempo serio per un modello così grande.
Ecco 3 suggerimenti:http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/
Un riassunto:
- Utilizzo di un negozio di modelli db memorizzato nella cache
- Genera visualizzazioni precompilate
- Genera una versione precompilata di entityframework utilizzando n-gen per evitare il jitting
Mi assicurerei anche di compilare l'applicazione in modalità di rilascio durante l'esecuzione dei benchmark.
Un'altra soluzione consiste nel dividere il DBContext. 400 entità sono molte e dovrebbe essere più piacevole lavorare con blocchi più piccoli. Non l'ho provato ma presumo che sarebbe possibile costruire i modelli uno per uno, il che significa che nessun singolo carico richiede 15 secondi. Vedi questo post di Julie Lerman https://msdn.microsoft.com/en-us/magazine/jj883952.aspx