← Все вопросы

Что такое ADO.NET и как с его помощью обращаться к базе данных?

Задан 14 месяцев назад1.5к просмотров2 ответа
7

Начал разбираться с работой с БД в C#, везде встречается ADO.NET. Что это, как выглядит самый базовый запрос к базе через него и чем оно отличается от Entity Framework?

2 ответа

12
✓ Принятый ответ — помог автору

ADO.NET — это низкоуровневый набор классов в .NET для работы с базами данных: подключения, команды, чтение результатов. Это «фундамент», поверх которого построены ORM вроде Entity Framework.

Ключевые классы: SqlConnection (подключение), SqlCommand (запрос), SqlDataReader (чтение строк). Базовый пример выборки:

using System.Data.SqlClient;

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

using var command = new SqlCommand(
    "SELECT Id, Name FROM Users WHERE Age > @age", connection);
command.Parameters.AddWithValue("@age", 18);

using var reader = command.ExecuteReader();
while (reader.Read())
{
    int id = reader.GetInt32(0);
    string name = reader.GetString(1);
    Console.WriteLine($"{id}: {name}");
}

Обратите внимание на @age — это параметризованный запрос. Всегда передавайте значения через параметры, а не склеивайте строку SQL руками — иначе получите SQL-инъекцию.

Отличие от Entity Framework: ADO.NET — ручная работа с SQL и ручное чтение колонок. EF — это ORM над тем же ADO.NET: он сам генерирует SQL и маппит строки на объекты C#. ADO.NET даёт максимальный контроль и скорость, EF — удобство и меньше рутины. Для большинства приложений берут EF, к чистому ADO.NET спускаются ради тонкой оптимизации горячих запросов.

5

Добавлю практический момент: пакет System.Data.SqlClient считается устаревшим, в новых проектах берите Microsoft.Data.SqlClient. API почти идентичный, но он активно развивается и лучше поддерживает свежие версии SQL Server и .NET.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект