Pracuję nad aplikacją MVC 5, która używa Entity Framework 6.1.3. Próbuję zoptymalizować pierwsze wywołanie, które zwykle zajmuje 1-4 sekundy, wstępnie generując widoki. Rozumiem, dlaczego tak się dzieje, ale czuję, że gdzieś brakuje jakiegoś ważnego kroku.Wstępne widoki struktury jednostek Entity
Mój obecny test uruchamia tę samą funkcję pięć razy, aby wyciągnąć kolekcję obiektów z mojego DB za pomocą EF. Gdy ten z 'osadzić na wyjściu katalogu' zestawu w moim edmx uzyskać następujące wyniki:
**
- Pierwszy EF połączenia: 2617 milisekund
- drugie EF połączenia: 19 milisekund
- trzecie EF Zadzwoń: 19 milisekund
- czwarte EF Zadzwoń: 17 milisekund
- piąte EF Zadzwoń: 20 milisekund
**
Oczekuję od EF generuje miejscowe widoki dostępu do bazy danych ...
Kiedy przełączyć na „Kopiuj do wyjścia katalogu”, sprawdź, że moje pliki są skopiowane do folder bin i mój ciąg połączenia został zaktualizowany, a następnie uruchomić ten sam test uzyskać podobne wyniki:
**
- Pierwszy EF połączenia: 2546 milisekund
- drugie EF Zadzwoń: 19 milisekund
- trzecie EF Zadzwoń: 18 milisekund
- czwarte EF Zadzwoń: 18 milisekund
- piąte EF Zadzwoń: 21 milisekund
**
Brak zmiany pierwsze połączenie, co jest dziwne. Dodałem EF Power Tools, kliknąłem prawym przyciskiem myszy na moim edmx => Entity Framework => Generate Views. Plik "Model1.View.cs" został utworzony z ciągiem znaków dla każdej z moich tabel/widoków, więc czułem się, jakbym był na właściwej ścieżce. Po ponownym uruchomieniu testu uzyskałem takie same wyniki. Umieszczenie punktu przerwania w każdej metodzie nowo wygenerowanego pliku "Model1.View.cs" pokazuje, że nigdy nie jest trafiony.
Czy brakuje tu ważnego kroku? W jaki sposób mogę powiedzieć EF, aby używał pliku utworzonego przez EF Power Tools lub w jaki sposób utworzyć katalog kopiowania do wyjścia, tak jak czytałem online?
Dziękuję Pawel! –
Zawarłem interaktywne generowane widoki i wygenerowałem natywne obrazy, a moje pierwsze połączenie zostało zredukowane do 458 milisekund. Jesteś niesamowity. –
Cześć Matthew, pracuję nad aplikacją ASP.NET MVC i przetestowałbym twoje rozwiązanie. Gdzie dodałeś kod Pawła? W pliku Global.asax? Zdefiniowałem kontekst bazy danych i edmx w zewnętrznej bibliotece dll. Z góry dziękuję. – jacktric