Ich verwende eine ältere Version der EL, die Begin */End * -Methoden bietet, aber keine asynchronen Versionen. Einige einfache Erweiterungsmethoden vereinfachen die Lebensdauer:
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);
}
Wie wäre es mit dem Öffnen der Verbindung? –
Ich sehe diese Methoden tatsächlich nicht .. Ich habe die neuesten Daten der Enterprise-Bibliothek durch Nuget und immer noch nicht in der Lage, diese Methoden zu finden .. Kannst du mir die Version von ent lib wissen? – Bala
ExecuteReaderAsync stammt nicht aus der Enterprise-Bibliothek - https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.exectereaderasync(v=vs.110).aspx – StingyJack