Sobes.tech
Back to questions
Junior — Middle
68

Можете объяснить, что подразумевается под термином 'чистый SQL' и в чем его отличие от ORM-методов?

Answer from AI

sobes.tech AI

"Чистый SQL" — это написание и использование SQL-запросов напрямую, без посредников или абстракций, таких как ORM (Object-Relational Mapping). Это означает, что разработчик самостоятельно формирует запросы на языке SQL для взаимодействия с базой данных.

Отличия от ORM:

  • Контроль и прозрачность: с чистым SQL вы точно знаете, какие запросы выполняются, что облегчает оптимизацию и отладку.

  • Гибкость: можно использовать специфичные для СУБД возможности и сложные запросы, которые не всегда просто выразить через ORM.

  • Отсутствие абстракций: ORM скрывает детали SQL за объектами и методами, что упрощает разработку, но иногда приводит к неоптимальным запросам.

  • Производительность: чистый SQL может быть быстрее, так как вы пишете именно тот запрос, который нужен, без лишних слоев.

Пример чистого SQL в C# с использованием ADO.NET:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var command = new SqlCommand("SELECT * FROM Users WHERE Age > @age", connection);
    command.Parameters.AddWithValue("@age", 18);

    using (var reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            Console.WriteLine(reader["Name"]);
        }
    }
}

В отличие от ORM, где вы бы писали что-то вроде context.Users.Where(u => u.Age > 18), здесь вы управляете запросом напрямую.