В современной разработке программного обеспечения эффективный и надежный доступ к базе данных имеет решающее значение для создания надежных приложений. Одним из популярных инструментов, упрощающих доступ к базам данных в экосистеме.NET, является Dapper. В этой статье мы рассмотрим различные методы использования Dapper для взаимодействия с базами данных и попутно предоставим примеры кода.
- Базовое выполнение запросов.
Dapper упрощает выполнение SQL-запросов, сопоставляя результаты запросов с объектами. Вот пример выполнения простого оператора SELECT:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var results = connection.Query<MyObject>("SELECT * FROM MyTable");
// Process the results...
}
- Параметризованные запросы.
Чтобы предотвратить атаки SQL-инъекций и повысить производительность запросов, Dapper поддерживает параметризованные запросы. Вот пример:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var results = connection.Query<MyObject>("SELECT * FROM MyTable WHERE Id = @Id", new { Id = 1 });
// Process the results...
}
- Выполнение хранимых процедур.
Dapper также поддерживает выполнение хранимых процедур:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var results = connection.Query<MyObject>("MyStoredProcedure", commandType: CommandType.StoredProcedure);
// Process the results...
}
- Управление транзакциями.
Dapper позволяет легко управлять транзакциями:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
try
{
// Perform database operations within the transaction
connection.Execute("INSERT INTO MyTable (Column1) VALUES (@Value)", new { Value = "Data" }, transaction);
connection.Execute("UPDATE AnotherTable SET Column2 = @Value", new { Value = "UpdatedData" }, transaction);
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
}
- Массовая вставка.
Dapper предоставляет эффективные возможности массовой вставки с использованием классаSqlBulkCopy:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var dataTable = GetDataTable(); // Get a DataTable with the data to be inserted
connection.BulkCopy(dataTable);
}
Dapper — это мощный и легкий ORM, который упрощает доступ к базе данных в приложениях.NET. В этой статье мы рассмотрели несколько методов использования Dapper, включая базовое выполнение запросов, параметризованные запросы, выполнение хранимых процедур, управление транзакциями и массовую вставку. Используя функции Dapper, разработчики могут добиться эффективного и надежного сохранения данных, сохраняя при этом читаемость и производительность кода.