LoveRead.info » Книги » Разная литература » Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

178 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

Книга Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читать онлайн бесплатно без регистрации

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле. Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных. Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

    1 ... 246 247 248 249 250 251 252 253 254 ... 407
    Перейти на страницу:
    class="code">  void Commit();

      void Rollback();

      void Dispose();

    }

    Роль интерфейса IDbCommand

    Интерфейс IDbCommand будет реализован объектом команды поставщика данных. Подобно другим объектным моделям доступа к данным объекты команд позволяют программно манипулировать операторами SQL, хранимыми процедурами и параметризированными запросами. Объекты команд также обеспечивают доступ к типу чтения данных поставщика данных посредством перегруженного метода 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, который предоставляет доступ к набору классов, совместимых с IDbDataParameter (например, объектам параметров):

    public interface IDbDataParameter : IDataParameter

    {

    // Плюс члены интерфейса IDataParameter.

      byte Precision { get; set; }

      byte Scale { get; set; }

      int Size { get; set; }

    }

    Интерфейс IDbDataParameter расширяет IDataParameter с целью обеспечения дополнительных линий поведения:

    public 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; }

    }

    Вы увидите, что функциональность интерфейсов IDbDataParameter и IDataParameter позволяет представлять параметры внутри команды SQL (включая хранимые процедуры) с помощью специфических объектов параметров ADO.NET вместо жестко закодированных строковых литералов.

    Роль интерфейсов IDbDataAdapter и IDataAdapter

    Адаптеры данных используются для помещения объектов DataSet в хранилище данных и извлечения их из него. Интерфейс IDbDataAdapter определяет следующий набор свойств, которые можно применять для поддержки операторов SQL, выполняющих связанные операции выборки, вставки, обновления и удаления:

    public 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 сопоставлять имена столбцов базы данных с более дружественными к пользователю отображаемыми именами:

    public interface IDataAdapter

    {

      MissingMappingAction MissingMappingAction { get; set; }

      MissingSchemaAction MissingSchemaAction { get; set; }

      ITableMappingCollection TableMappings { get; }

      DataTable[] FillSchema(DataSet dataSet, SchemaType schemaType);

      int Fill(DataSet dataSet);

      IDataParameter[] GetFillParameters();

      int Update(DataSet dataSet);

    }

    Роль интерфейсов IDataReader и IDataRecord

    Следующим основным интерфейсом является IDataReader, который представляет общие линии поведения, поддерживаемые отдельно взятым объектом чтения данных. После получения от поставщика данных ADO.NET объекта совместимого с IDataReader типа можно выполнять проход по результирующему набору в прямом направлении с поддержкой только чтения.

    public interface IDataReader : IDisposable, IDataRecord

    {

      // Плюс члены интерфейса IDataRecord

      int Depth { get; }

      bool IsClosed { get; }

      int RecordsAffected { get; }

      void Close();

      DataTable GetSchemaTable();

      bool NextResult();

      bool Read();

      Dispose();

    }

    Наконец, интерфейс IDataReader расширяет IDataRecord. В интерфейсе IDataRecord определено много членов, которые позволяют извлекать из потока строго типизированное значение, а не приводить к нужному типу экземпляр System.Object, полученный из перегруженного метода индексатора объекта чтения данных. Вот определение интерфейса IDataRecord:

    public interface IDataRecord

    {

      int FieldCount { get; }

      object this[ int i ] { get; }

      object this[ string name ] { get; }

      bool GetBoolean(int i);

      byte GetByte(int i);

      long GetBytes(int i, long fieldOffset, byte[] buffer,

        int bufferoffset, int length);

      char GetChar(int i);

      long GetChars(int i, long fieldoffset, char[] buffer,

        int bufferoffset, int length);

      IDataReader GetData(int i);

      string GetDataTypeName(int i);

      DateTime GetDateTime(int i);

      Decimal GetDecimal(int i);

      double GetDouble(int i);

      Type GetFieldType(int i);

      float GetFloat(int i);

      Guid GetGuid(int i);

      short GetInt16(int i);

      int GetInt32(int i);

      long GetInt64(int i);

      string GetName(int i);

      int GetOrdinal(string name);

      string GetString(int i);

      object GetValue(int i);

      int GetValues(object[] values);

      bool IsDBNull(int i);

    }

    На заметку! Метод IDataReader.IsDBNull() можно применять для программного выяснения, установлено ли указанное поле в null, прежде чем пытаться получить значение из объекта чтения данных (во избежание генерации исключения во время выполнения). Также вспомните, что язык C# поддерживает типы данных, допускающие null (см. главу 4), идеально подходящие для взаимодействия со столбцами, которые могут иметь значение null в таблице базы данных.

    Абстрагирование поставщиков данных с использованием интерфейсов

    К настоящему моменту вы должны лучше понимать общую функциональность, присущую всем поставщикам данных .NET Core. Вспомните, что хотя точные имена реализуемых типов будут отличаться между поставщиками данных,

    1 ... 246 247 248 249 250 251 252 253 254 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    2. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    3. Елена Елена08 июнь 11:13 Прочла несколько романов этого, без сомнения, талантливого автора. Впечатление прекрасное, но хотелось бы когда-нибудь прочесть... Предатель. Ты врал мне годами - Арина Арская
    Все комметарии
    Новинки бесплатной онлайн библиотеки