5 способов выполнения SQL-скриптов с параметрами в красивом приложении

В этой статье блога мы рассмотрим несколько методов выполнения SQL-скриптов с параметрами с использованием Dapper, популярного микро-ORM для.NET. Используя параметризованные запросы, мы можем повысить безопасность и производительность операций с базой данных. Итак, давайте углубимся и узнаем о пяти различных способах достижения этой цели в приложении Dapper.

Метод 1: выполнить сценарий SQL с использованием анонимного объекта

Один из способов выполнить SQL-скрипт с параметрами в Dapper — использовать анонимный объект. Анонимный объект будет содержать пары свойство-значение, соответствующие параметрам вашего сценария SQL. Вот пример:

string sql = "INSERT INTO Customers (Name, Email) VALUES (@Name, @Email)";
var parameters = new { Name = "John Doe", Email = "johndoe@example.com" };
connection.Execute(sql, parameters);

Метод 2: выполнить сценарий SQL с использованием динамического объекта

Другой подход — использовать динамический объект для передачи параметров в ваш SQL-скрипт. Этот метод обеспечивает гибкость при создании объекта параметра «на лету». Вот пример:

string sql = "SELECT * FROM Customers WHERE Age > @Age";
dynamic parameters = new { Age = 25 };
var result = connection.Query(sql, parameters);

Метод 3: выполнить сценарий SQL с использованием словаря

Dapper также позволяет передавать параметры с помощью словаря. Этот метод полезен, если у вас есть набор параметров, которые вы хотите динамически изменять или обновлять. Вот пример:

string sql = "UPDATE Customers SET Email = @Email WHERE Id = @Id";
var parameters = new Dictionary<string, object>
{
    { "Email", "newemail@example.com" },
    { "Id", 1 }
};
connection.Execute(sql, parameters);

Метод 4. Выполнение сценария SQL с использованием специального класса

Вы можете создать собственный класс для представления параметров и передать экземпляр этого класса в Dapper. Этот подход обеспечивает строгую типизацию и делает ваш код более читабельным. Вот пример:

public class Customer
{
    public string Name { get; set; }
    public string Email { get; set; }
}
string sql = "INSERT INTO Customers (Name, Email) VALUES (@Name, @Email)";
var customer = new Customer { Name = "Jane Smith", Email = "janesmith@example.com" };
connection.Execute(sql, customer);

Метод 5: выполнить сценарий SQL с использованием класса DynamicParameters Dapper

Dapper предоставляет класс DynamicParameters, который позволяет динамически добавлять параметры. Этот метод полезен, когда вам нужно условно добавить или изменить параметры. Вот пример:

string sql = "SELECT * FROM Customers WHERE Name LIKE @Name";
var parameters = new DynamicParameters();
parameters.Add("@Name", "%Doe%", DbType.String, ParameterDirection.Input);
var result = connection.Query(sql, parameters);

В этой статье мы рассмотрели пять различных методов выполнения сценариев SQL с параметрами в приложении Dapper. Используя эти методы, вы можете повысить безопасность и производительность операций с базой данных. Независимо от того, решите ли вы использовать анонимные объекты, динамические объекты, словари, пользовательские классы или класс DynamicParameters Dapper, параметризованные запросы с Dapper – это мощный способ взаимодействия с вашей базой данных.