« Dapper » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 3 : Ligne 3 :
* [https://github.com/cornflourblue/dotnet-7-dapper-mysql-crud-api dotnet-7-dapper-mysql-crud-api]
* [https://github.com/cornflourblue/dotnet-7-dapper-mysql-crud-api dotnet-7-dapper-mysql-crud-api]
* [https://dapper-plus.net Dapper Plus]
* [https://dapper-plus.net Dapper Plus]
* [https://tacta.io/en/news/generic-repository-pattern-using-dapper/20 Generic repository pattern using Dapper]
* [https://github.com/moraleslarios/MoralesLarios.Data Generic Repository based in Dapper]


= [https://www.c-sharpcorner.com/article/dapper-vs-entity-framework-core-vs-ado-net-which-one-should-you-choose/ Description] =
= [https://www.c-sharpcorner.com/article/dapper-vs-entity-framework-core-vs-ado-net-which-one-should-you-choose/ Description] =

Version du 13 août 2023 à 15:07

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();
}
Repositories/ItemRepository.cs
using var dbConnection = dbConnectionFactory.CreateConnection();

var sql = """
    select * from item
""");
var items = await dbConnection.QueryAsync<Item>(sql);