Работя върху MVC 5 приложение, което използва Entity Framework 6.1.3. Опитвам се да оптимизирам първото обаждане, което обикновено отнема 1-4 секунди, като предварително генерирам изгледите. Разбирам защо се случва това, но имам чувството, че някъде пропускам важна стъпка.
Текущият ми тест изпълнява същата функция пет пъти, за да изтегли колекция от обекти от моята DB с помощта на EF. Когато стартирам това с „Вграждане в изходна директория“, зададено в моя edmx, получавам следните резултати:
**
- Първо EF повикване: 2617 милисекунди
- Второ EF повикване: 19 милисекунди
- Трето EF повикване: 19 милисекунди
- Четвърто EF повикване: 17 милисекунди
- Пето EF повикване: 20 милисекунди
**
Очаквам това, тъй като EF генерира локалните изгледи за достъп до базата данни...
Когато превключа на „Копиране в изходна директория“, проверете отново дали файловете ми се копират в папката bin и низът ми за връзка е актуализиран, след което изпълнете същия тест и получавам подобни резултати:
**
- Първо EF повикване: 2546 милисекунди
- Второ EF повикване: 19 милисекунди
- Трето EF повикване: 18 милисекунди
- Четвърто EF повикване: 18 милисекунди
- Пето EF повикване: 21 милисекунди
**
Няма промяна при първото обаждане, което е странно. Добавих EF Power Tools, щракнах с десния бутон върху моя edmx => Entity Framework => Генериране на изгледи. Беше създаден файл „Model1.View.cs“ с низ за всяка от моите таблици/изгледи, така че почувствах, че съм на прав път. Когато пуснах теста отново, получих същите резултати. Поставянето на точка на прекъсване във всеки метод на новогенерирания файл „Model1.View.cs“ показва, че той никога не е ударен.
Пропускам ли важна стъпка тук? Как да кажа на EF да използва файла, създаден от EF Power Tools, или как да накарам Copy to Output Directory да работи, както съм чел онлайн?