W pierwszym zapytaniu EF kompiluje model. W przypadku tak dużego modelu może to zająć trochę czasu.
Oto 3 sugestie:http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/
Podsumowanie:
- Korzystanie z buforowanego magazynu modeli db
- Generuj wstępnie skompilowane widoki
- Wygeneruj wstępnie skompilowaną wersję entityframework za pomocą n-gen, aby uniknąć jittingu
Upewniłbym się również, że podczas testów porównawczych skompiluję aplikację w trybie wydania.
Innym rozwiązaniem jest przyjrzenie się dzieleniu DBContext. 400 jednostek to dużo i powinno być przyjemniej pracować z mniejszymi kawałkami. Nie próbowałem tego, ale zakładam, że byłoby możliwe zbudowanie modeli jeden po drugim, co oznacza, że żadne pojedyncze obciążenie nie zajmuje 15s. Zobacz ten post Julie Lerman https://msdn.microsoft.com/en-us/magazine/jj883952.aspx