Sto usando una versione precedente dell'EL che offre i metodi Begin */End *, ma non le versioni asincrone. Alcuni semplici metodi di estensione semplificano la vita:
public static async Task<IDataReader> ExecuteReaderAsync(this SqlDatabase database, DbCommand command)
{
return await Task<IDataReader>.Factory.FromAsync(database.BeginExecuteReader, database.EndExecuteReader, command, null);
}
public static async Task<object> ExecuteScalarAsync(this SqlDatabase database, DbCommand command)
{
return await Task<object>.Factory.FromAsync(database.BeginExecuteScalar, database.EndExecuteScalar, command, null);
}
public static async Task<XmlReader> ExecuteXmlReaderAsync(this SqlDatabase database, DbCommand command)
{
return await Task<XmlReader>.Factory.FromAsync(database.BeginExecuteXmlReader, database.EndExecuteXmlReader, command, null);
}
public static async Task<int> ExecuteNonQueryAsync(this SqlDatabase database, DbCommand command)
{
return await Task<int>.Factory.FromAsync(database.BeginExecuteNonQuery, database.EndExecuteNonQuery, command, null);
}
fonte
2016-04-15 15:02:50
Che dire di aprire la connessione? –
In realtà non vedo questi metodi ora .. Ho ottenuto i dati più recenti della libreria aziendale tramite Nuget e ancora non sono in grado di trovare questi metodi ... Puoi farmi sapere la versione di ent lib? – Bala
ExecuteReaderAsync non appartiene alla libreria aziendale: https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereaderasync(v=vs.110).aspx – StingyJack