Как правильно и удобно читать данные из БД?

В C# есть несколько способов чтения данных из базы данных. В данном ответе мы сосредоточимся на использовании ADO.NET и Entity Framework.

1. ADO.NET: ADO.NET - это набор классов и компонентов, предоставляемых .NET Framework, для работы с базами данных. Основные классы, которые нужно использовать при чтении данных из БД, это SqlConnection, SqlCommand и SqlDataReader.

Класс SqlConnection используется для установления соединения с базой данных, класс SqlCommand - для выполнения SQL-запросов, а SqlDataReader - для чтения данных из результата выполнения запроса.

Пример использования ADO.NET для чтения данных из БД:

   string connectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyDatabase;Integrated Security=True";

   using (SqlConnection connection = new SqlConnection(connectionString))
   {
       connection.Open();

       string sqlQuery = "SELECT * FROM Customers";
       using (SqlCommand command = new SqlCommand(sqlQuery, connection))
       {
           using (SqlDataReader reader = command.ExecuteReader())
           {
               while (reader.Read())
               {
                   int customerId = (int)reader["CustomerId"];
                   string customerName = (string)reader["CustomerName"];
                   // Прочитайте остальные поля данных здесь и выполните необходимые действия
               }
           }
       }
   }

В данном примере мы создаем подключение к базе данных, выполняем SQL-запрос "SELECT * FROM Customers" и используем SqlDataReader для итерации по результату выполнения запроса.

2. Entity Framework: Entity Framework (EF) - это набор библиотек и инструментов, которые упрощают доступ к базам данных, представляя данные в виде объектов.

Entity Framework предоставляет ORM-решение (Object-Relational Mapping), которое позволяет разработчику работать с данными, используя объектно-ориентированный подход, вместо написания SQL-запросов.

Пример использования Entity Framework для чтения данных из БД:

   using (var context = new MyDbContext())
   {
       var customers = context.Customers.ToList();
       foreach (var customer in customers)
       {
           int customerId = customer.CustomerId;
           string customerName = customer.CustomerName;
           // Прочитайте остальные поля данных здесь и выполните необходимые действия
       }
   }

В данном примере мы создаем контекст базы данных (MyDbContext), который настроен для работы с определенной базой данных. Затем мы получаем список всех записей в таблице "Customers" с помощью метода ToList(). Затем мы можем использовать полученные объекты для выполнения необходимых действий.

Какой метод лучше использовать - зависит от вашего проекта и предпочтений. ADO.NET предоставляет более низкоуровневый доступ к данным, что может быть полезным, если у вас есть сложные потребности в производительности или если вам нужно полное контроль над SQL-запросами. С другой стороны, Entity Framework предлагает более высокоуровневый и удобный подход для работы с данными, основанный на объектах.