CHAPTER 21 ADO.NET PART I: THE CONNECTED LAYER
The Role of the IDbConnection Interface
The IDbConnection type is implemented by a data provider’s connection object. This interface defines a
set of members used to configure a connection to a specific data store. It also allows you to obtain the
data provider’s transaction object. Here is the formal definition of IDbConnection:
public interface IDbConnection : IDisposable
{
string ConnectionString { get; set; }
int ConnectionTimeout { get; }
string Database { get; }
ConnectionState State { get; }
IDbTransaction BeginTransaction();
IDbTransaction BeginTransaction(IsolationLevel il);
void ChangeDatabase(string databaseName);
void Close();
IDbCommand CreateCommand();
void Open();
}
Note Like many other types in the .NET base class libraries, the Close() method is functionally equivalent to
calling the Dispose() method directly or indirectly within C# by using scope (see Chapter 13).
The Role of the IDbTransaction Interface
The overloaded BeginTransaction() method defined by IDbConnection provides access to the provider’s
transaction object. You can use the members defined by IDbTransaction to interact programmatically
with a transactional session and the underlying data store.
public interface IDbTransaction : IDisposable
{
IDbConnection Connection { get; }
IsolationLevel IsolationLevel { get; }
void Commit();
void Rollback();
}
The Role of the IDbCommand Interface
Next up is the IDbCommand interface, which will be implemented by a data provider’s command object.
Like other data access object models, command objects allow programmatic manipulation of SQL
statements, stored procedures, and parameterized queries. Command objects also provide access to the
data provider’s data reader type through the overloaded ExecuteReader() method.
809