Yapper 2.0.4

Yep Another Wrapper for Dapper. This wrapper provides a simple Unit of Work pattern for isolating transactional business rules, cache and crud layer.

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.

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();

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();

Release Notes

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

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.0.4 290 6/5/2018
2.0.3 242 6/4/2018
2.0.2 247 6/3/2018
2.0.1 243 6/2/2018
2.0.0 262 6/2/2018