i have a question about Entity Framework 6 and ToListAsync()/ToList().
if i have a little amount of data (around 1000 rows) i have noticed that ToListAsync() is faster than ToList().
But if i have a huge amount of data (around 600.000 rows) ToList() is faster than ToListAsync().
Here you can fine the code, someone can explain me why?.
//SharedAnagra contains around 1000 rows
static List<SharedAnagra> GetSharedAnagraList()
{
using (Intranet2k3Entities intranet2K3Entities = new Intranet2k3Entities())
{
List<SharedAnagra> listaSharedAnagras = (from a in intranet2K3Entities.sharedAnagra
select new SharedAnagra
{
AnagraActive = a.AnagraActive,
AnagraId = a.AnagraID,
AnagraName = a.AnagraName,
OfficeId = a.OfficeID
}).ToList();
return listaSharedAnagras;
}
}
static async Task<List<SharedAnagra>> GetSharedAnagraListAsync()
{
using (Intranet2k3Entities intranet2K3Entities = new Intranet2k3Entities())
{
List<SharedAnagra> listaSharedAnagras = await (from a in intranet2K3Entities.sharedAnagra
select new SharedAnagra
{
AnagraActive = a.AnagraActive,
AnagraId = a.AnagraID,
AnagraName = a.AnagraName,
OfficeId = a.OfficeID
}).ToListAsync();
return listaSharedAnagras;
}
}
//sharedAnagraNDGClienti contains 950000 rows
static List<SharedAnagraNdgClienti> ListaSharedNdgClienti()
{
using (Intranet2k3Entities intranet2K3Entities = new Intranet2k3Entities())
{
List<SharedAnagraNdgClienti> lista = (from a in intranet2K3Entities.sharedAnagraNDGClienti
select new SharedAnagraNdgClienti
{
Cm = a.CM,
CodFisc = a.CodFisc,
Cognome = a.Cognome,
Descrizione = a.Descrizione,
FilialePrevalente = a.Filiale_Prevalente,
Ndg = a.NDG,
Nome = a.Nome,
Telefono = a.Telefono,
Tipologia = a.Tipologia,
Trae = a.TRAE,
Tsae = a.TSAE
}).AsNoTracking().ToList();
return lista;
}
}
static async Task<List<SharedAnagraNdgClienti>> GetIssueTypeByIdAsync()
{
List<SharedAnagraNdgClienti> listaSharedAnagraNdgClienti;
using (Intranet2k3Entities intranet2K3Entities = new Intranet2k3Entities())
{
listaSharedAnagraNdgClienti = await (from a in intranet2K3Entities.sharedAnagraNDGClienti
select new SharedAnagraNdgClienti
{
Cm = a.CM,
CodFisc = a.CodFisc,
Cognome = a.Cognome,
Descrizione = a.Descrizione,
FilialePrevalente = a.Filiale_Prevalente,
Ndg = a.NDG,
Nome = a.Nome,
Telefono = a.Telefono,
Tipologia = a.Tipologia,
Trae = a.TRAE,
Tsae = a.TSAE
}).AsNoTracking().ToListAsync();
}
return listaSharedAnagraNdgClienti;
}