Язык программирования C#9 и платформа .NET5
Часть 380 из 642 Информация о книге
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();void Dispose();}Роль интерфейса IDbTransaction
Перегруженный метод
, определенный в интерфейсеBeginTransaction(), предоставляет доступ к объекту транзакции поставщика. Члены, определенные интерфейсомIDbConnection, позволяют программно взаимодействовать с транзакционным сеансом и лежащим в основе хранилищем данных:IDbTransactionpublic interface IDbTransaction : IDisposable{IDbConnection Connection { get; }IsolationLevel IsolationLevel { get; }void Commit();void Rollback();void Dispose();}Роль интерфейса IDbCommand
Интерфейс
будет реализован объектом команды поставщика данных. Подобно другим объектным моделям доступа к данным объекты команд позволяют программно манипулировать операторами SQL, хранимыми процедурами и параметризированными запросами. Объекты команд также обеспечивают доступ к типу чтения данных поставщика данных посредством перегруженного методаIDbCommand:ExecuteReader()public interface IDbCommand : IDisposable{string CommandText { get; set; }int CommandTimeout { get; set; }CommandType CommandType { get; set; }IDbConnection Connection { get; set; }IDbTransaction Transaction { get; set; }IDataParameterCollection Parameters { get; }UpdateRowSource UpdatedRowSource { get; set; }void Prepare();void Cancel();IDbDataParameter CreateParameter();int ExecuteNonQuery();IDataReader ExecuteReader();IDataReader ExecuteReader(CommandBehavior behavior);object ExecuteScalar();void Dispose();}Роль интерфейсов IDbDataParameter и IDataParameter
Обратите внимание, что свойство
интерфейсаParametersвозвращает строго типизированную коллекцию, реализующую интерфейсIDbCommand, который предоставляет доступ к набору классов, совместимых сIDataParameterCollection(например, объектам параметров):IDbDataParameterpublic interface IDbDataParameter : IDataParameter{// Плюс члены интерфейса IDataParameter.byte Precision { get; set; }byte Scale { get; set; }int Size { get; set; }}Интерфейс
расширяетIDbDataParameterс целью обеспечения дополнительных линий поведения:IDataParameterpublic interface IDataParameter{DbType DbType { get; set; }ParameterDirection Direction { get; set; }bool IsNullable { get; }string ParameterName { get; set; }string SourceColumn { get; set; }DataRowVersion SourceVersion { get; set; }object Value { get; set; }}Вы увидите, что функциональность интерфейсов I
иDbDataParameterпозволяет представлять параметры внутри команды SQL (включая хранимые процедуры) с помощью специфических объектов параметров ADO.NET вместо жестко закодированных строковых литералов.IDataParameterРоль интерфейсов IDbDataAdapter и IDataAdapter
Адаптеры данных используются для помещения объектов
в хранилище данных и извлечения их из него. ИнтерфейсDataSetопределяет следующий набор свойств, которые можно применять для поддержки операторов SQL, выполняющих связанные операции выборки, вставки, обновления и удаления:IDbDataAdapterpublic interface IDbDataAdapter : IDataAdapter{// Плюс члены интерфейса IDataAdapter.IDbCommand SelectCommand { get; set; }IDbCommand InsertCommand { get; set; }IDbCommand UpdateCommand { get; set; }IDbCommand DeleteCommand { get; set; }}В дополнение к показанным четырем свойствам адаптер данных ADO.NET также получает линии поведения, определенные базовым интерфейсом, т.е.
. ИнтерфейсIDataAdapterопределяет ключевую функцию типа адаптера данных: способность передавать объектыIDataAdapterмежду вызывающим кодом и внутренним хранилищем данных, используя методыDataSetиFill(). Кроме того, интерфейсUpdate()позволяет с помощью свойстваIDataAdapterсопоставлять имена столбцов базы данных с более дружественными к пользователю отображаемыми именами:TableMappings