Modern.Repositories.Dapper 2.0.0

dotnet add package Modern.Repositories.Dapper --version 2.0.0
NuGet\Install-Package Modern.Repositories.Dapper -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Modern.Repositories.Dapper" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Modern.Repositories.Dapper --version 2.0.0
#r "nuget: Modern.Repositories.Dapper, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Modern.Repositories.Dapper as a Cake Addin
#addin nuget:?package=Modern.Repositories.Dapper&version=2.0.0

// Install Modern.Repositories.Dapper as a Cake Tool
#tool nuget:?package=Modern.Repositories.Dapper&version=2.0.0

Modern Dapper Repository

To use Dapper repository install the Modern.Repositories.Dapper.DependencyInjection Nuget package and register it within Modern builder in DI:

builder.Services
    .AddModern()
    .AddRepositoriesDapper(options =>
    {
        options.ProvideDatabaseConnection(() => new NpgsqlConnection(connectionString));
        options.AddRepository<AirplaneDapperMapping, AirplaneDbo, long>();
    });

Specify the type of Dapper mapping class, Dbo entity model and primary key.
A dapper needs to know how to create a database connection. Since there are multiple database connection classes - provide the needed one using ProvideDatabaseConnection method. Dapper repository requires to have a small mapping class that way generic repository can match the entity property name with database table column.

Mapping class for Dapper is a part of Modern tools and not a part of Dapper library

For example consider the following mapping class:

public class AirplaneDapperMapping : DapperEntityMapping<AirplaneDbo>
{
    protected override void CreateMapping()
    {
        Table("db_schema_name.airplanes")
            .Id(nameof(AirplaneDbo.Id), "id")
            .Column(nameof(AirplaneDbo.YearOfManufacture), "year_of_manufacture")
            .Column(nameof(AirplaneDbo.ModelId), "model_id")
            //...
            ;
    }
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Modern.Repositories.Dapper:

Package Downloads
Modern.Repositories.Dapper.DependencyInjection

A generic repository implementation using Dapper for CRUD and Query operations

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 196 11/29/2023
2.0.0-beta1 85 11/22/2023
1.0.2 118 11/15/2023
1.0.1 144 7/15/2023
1.0.0 146 5/22/2023
1.0.0-beta4 119 3/17/2023
1.0.0-beta3 116 2/22/2023
1.0.0-beta2 116 1/31/2023
1.0.0-beta1 113 1/25/2023
1.0.0-alpha1 124 8/27/2022