У меня есть экземпляр IDbConnection, который может быть любым соединением, Sql, OleDb и т.д. Я хочу создать общую оболочку, чтобы я мог просто отправить оболочку на соединение и получить хороший набор методов для легкого манипулирования. У меня есть метод запроса, я хочу, чтобы он возвращал DataTable, поэтому я могу сделать
IDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = myCommand;
DataSet ds = new DataSet();
adapter.Fill(ds);
Проблема в том, что я должен использовать OleDbAdapter, и он не будет работать для SQL, я действительно не хочу писать "специфичный для драйвера" код. Есть ли способ получить экземпляр IDataAdapter из моего экземпляра объекта IDbConnection? Я знаю, что могу создать команду, выполняющую
IDbCommand command = _connection.CreateCommand();
Логично думать, что должен быть какой-то простой способ сделать то же самое с IDataAdapter.
EDIT:
using (var reader = command.ExecuteReader())
{
var dataTable = new DataTable();
dataTable.Load(reader);
}
Ну, не совсем то, что я просил, но хорошее решение.