Sono consapevole che questo è stato chiesto troppe volte, ma non sono riuscito a trovare una soluzione dalle domande poste.Codice quadro entità Primo 30+ secondi Tempo di avvio
Sono abbastanza nuovo in Entity Framework e ho sviluppato un piccolo pannello CMS per i miei siti Web utilizzando Entity Framework 6 e l'approccio Code First. Il mio problema è che il sito è molto lento quando si esegue (questo è il sito Web che sto attualmente testando www.oakwoodpawnshop.ca), ci vogliono più di 30 secondi per caricarlo. Dopo il primo caricamento, ci vuole circa un secondo per caricare altre pagine. Sto ottenendo 89/100 dalle informazioni di PageSpeed, tutti i miei file images/js/css sono ridotti al minimo e ho fatto altre ottimizzazioni front-end, quindi so che il mio problema è con EF. Ho un altro sito web che ho creato circa 3 anni fa usando solo LINQ, nessuna ottimizzazione del database o ottimizzazione html/immagine, e si apre in circa 3 secondi.
Ho viste pre generate utilizzando Power Tools di Entity Framework e non ho alcun metodo di inclusione nei miei codici. Ho filtrato le mie query prima della funzione .toList(). Probabilmente ho un problema con i miei codici o l'ottimizzazione del database, ma non riesco a trovare una soluzione attraverso la mia ricerca, perché quest'area è nuova per me.
Ho trovato un articolo nella mia lingua madre che chiede a qualcuno con lo stesso problema di eseguire alcuni codici al prompt dei comandi per vedere se il problema riguarda le impostazioni di rete.
Queste sono state le linee per prompt dei comandi:
1 - netsh int ip reset a.txt
2 - netsh winsock resettare
3 - winhttp netsh ripristino delega
4 - netsh advfirewall reset
5 - ipconfig/flushdns
6 - Riavvia il computer e ricontrolla.
Quando l'ho fatto e ho controllato sul sito Web, l'intero sito Web è stato aperto in 3 secondi. Dopo un po ', ha iniziato ad avere più di 30 secondi di avvio. Ovviamente non posso eseguire questi comandi sul computer di tutti, ma sono perso e non ho idea del perché ci sia voluto così tanto tempo per iniziare.
Ecco un esempio del metodo che sto usando:
public List<Categories> GetCategories()
{
List<Categories> c = db.Categories.Where(x => x.TopCategoryId == 0).OrderBy(x => x.CatOrder).ToList();
return c;
}
ho creato metodi personalizzati per andare a prendere i miei dati (in modo che io possa utilizzare più facilmente), in una classe di 'lavoratore' per raccogliere tutto il mio metodi in una classe. Potrebbe essere il problema?
Sarei felice di fornire ulteriori informazioni di cui hai bisogno, e sto trattando questo per circa un mese ora senza fortuna, quindi sono disperatamente alla ricerca di una risposta, o dovrò ricreare tutta l'applicazione senza EF, perché in nessun modo un cliente aspetterebbe un sito web con un tempo di apertura di +30 secondi.
Grazie in anticipo per tutti i vostri consigli!
Il problema è molto probabile con le migrazioni. Stai ancora lavorando attivamente alla tua applicazione in cui devi avere le migrazioni attive? Ogni volta che l'applicazione si avvia per la prima volta, __migrationHistory deve essere controllato; se la tua app non cambia più attivamente, la disattivazione delle migrazioni o il portare la migrazione di base a una singola migrazione corrente da un database vuoto dovrebbe essere d'aiuto. – Claies
Ciao @Claies, grazie mille per essere così veloce :) Sto solo lavorando sulla mia applicazione sul lato dei contenuti, quindi non c'è stato alcun cambiamento nel database per un tempo molto lungo. Ho eliminato la mia cartella della cronologia delle migrazioni e la cartella delle migrazioni e ho pubblicato di nuovo il sito Web, posso chiedere se è possibile verificare se è stato risolto? Mi sembra più veloce ora –