Stiamo utilizzando EF 6.0, .NET 4.5 e l'utilizzo del primo approccio al codice e il nostro database ha circa 170 entità (tabelle) e la tabella principale contiene circa 150.000 record Al primo caricamento del framework entità ci vogliono circa 25 secondi. Sto cercando di migliorare questa volta perché è troppo lento e man mano che il numero di record aumenta, diventa più lento. Ho provato a generare immagini native, ho provato a utilizzare viste interattive pre generate ma non sono riuscito a ottenere miglioramenti significativi.
Qualcuno può aiutarmi per favore su questo?
Grazie.
Recentemente ho avuto una semplice query che funziona in modo super veloce in SSMS, che stava prendendo piede, troppo a lungo per funzionare usando Entity Framework nel mio programma C #.
Questa pagina è stata estremamente utile quando si verificano problemi con le prestazioni EF in generale:
..ma in questo caso, nulla ha aiutato. Quindi alla fine, l'ho fatto:
List<UpcPrintingProductModel> products = new List<UpcPrintingProductModel>();
var sql = "select top 75 number, desc1, upccode "
+ "from MailOrderManager..STOCK s "
+ "where s.number like @puid + '%' "
;
var connstring = ConfigurationManager.ConnectionStrings["MailOrderManagerContext"].ToString();
using (var connection = new SqlConnection(connstring))
using (var command = new SqlCommand(sql, connection)) {
connection.Open();
command.Parameters.AddWithValue("@puid", productNumber);
using (SqlDataReader reader = command.ExecuteReader()) {
while (reader.Read()) {
var product = new UpcPrintingProductModel() {
ProductNumber = Convert.ToString(reader["number"]),
Description = Convert.ToString(reader["desc1"]),
Upc = Convert.ToString(reader["upccode"])
};
products.Add(product);
}
}
}
(Per questa particolare query, ho completamente ignorato completamente l'EF e utilizzato il vecchio standby: System.Data.SqlClient.)
Puoi arruffare il naso con disgusto; Di sicuro l'ho fatto - ma in realtà non ci è voluto molto tempo per scrivere, e si esegue quasi all'istante.