Yapper 2.0.4

Install-Package Yapper -Version 2.0.4
dotnet add package Yapper --version 2.0.4
<PackageReference Include="Yapper" Version="2.0.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Yapper --version 2.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Yapper, 2.0.4"
#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.4

// Install Yapper as a Cake Tool
#tool nuget:?package=Yapper&version=2.0.4
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 599 6/5/2018
2.0.3 521 6/4/2018
2.0.2 526 6/3/2018
2.0.1 530 6/2/2018
2.0.0 541 6/2/2018

2.0.4 Bugs & Tests for Sql Gen
2.0.2 Case Insensitivity
2.0.0 Refactor
1.0.0 Initial