Dapper

De Banane Atomic
Aller à la navigationAller à la recherche

Links

Description

Dapper is ideal for scenarios where performance is critical and developers want fine-grained control over the database operations.
Dapper is also easy to learn and use comparing to EF.

Nuget packages

Bash.svg
dotnet add package Dapper

dotnet add package MySQLConnection  # for MySqlConnection

Dependency Injection

Program.cs
var connectionString = builder.Configuration.GetConnectionString("MyDatabase");
builder.Services.AddSingleton<IDbConnectionFactory, MySqlConnectionFactory>(
    _ => new MySqlConnectionFactory(connectionString));
DataAccess/MySqlConnectionFactory.cs
public class MySqlConnectionFactory : IDbConnectionFactory
{
    private readonly string connectionString;

    public MySqlConnectionFactory(string connectionString)
    {
        this.connectionString = connectionString;
    }

    public IDbConnection CreateConnection() => new MySqlConnection(connectionString);
}
DataAccess/IDbConnectionFactory.cs
public interface IDbConnectionFactory
{
    IDbConnection CreateConnection();
}