Yapper 2.0.2

There is a newer version of this package available.
See the version list below for details.
Install-Package Yapper -Version 2.0.2
dotnet add package Yapper --version 2.0.2
<PackageReference Include="Yapper" Version="2.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Yapper --version 2.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Yapper, 2.0.2"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Yapper as a Cake Addin
#addin nuget:?package=Yapper&version=2.0.2

// Install Yapper as a Cake Tool
#tool nuget:?package=Yapper&version=2.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Yapper

Yep Another Wrapper for Dapper. This wrapper provides a simple Unit of Work pattern for isolating transactional business rules, and a simple CRUD statement builder for easy repository management.

Unit of Work Operations

using (var db = new DatabaseSession(myIDbConnection))
{
	using (var trx = db.BeginTransaction())
	{
		trx.Commit();
		//	otherwise on Dispose .Rollback by default
		//	if .Commit not already called
	}
}

CRUD Statement Builders (MSSQL Dialect)

Supports both composite keys and identities (requires DataAnnotation decorations).

var sql = StatementBuilder.InsertOne<Member>();
var sql = StatementBuilder.UpdateOne<Member>();
var sql = StatementBuilder.DeleteOne<Member>();
var sql = StatementBuilder.SaveOne<Member>(); /* performs update then insert when not found */
var sql = StatementBuilder.SelectOne<Member>( /*[optional anonymous where]*/ );
var sql = StatementBuilder.SelectMany<Member>( /*[optional anonymous where]*/ );

Sample Usage

public class Member
{
    [Key]
    [Required]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int MemberId { get; set; }
    
    [Required]
    [MaxLength(50)]
    public string MemberName { get; set; }
}

var sql = StatementBuilder.SelectOne<Member>(new { MemberId = 1 });

Member member = Connection.Query<Member>(sql).FirstOrDefault();

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.4 587 6/5/2018
2.0.3 516 6/4/2018
2.0.2 521 6/3/2018
2.0.1 525 6/2/2018
2.0.0 536 6/2/2018

2.0.2 Case Insensitivity
2.0.0 Refactor
1.0.0 Initial