Dapper.FastCrud 3.0.46

.NET Standard 2.0 .NET Framework 4.6.1

Requires NuGet 3.3 or higher.

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

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

You hate verbatim SQL queries with zero type safety for your code but you love the speed? Dapper.FastCrud is a fast orm built around essential features of the C# 6 / VB 14 that have finally raised the simplicity of raw SQL constructs to acceptable maintenance levels. These features leave no chance to mistypings or problems arising from db entity refactorings. Visual Studio 2019 and above is recommended.

What to expect when working with Dapper.FastCrud in the DAL?

Type safety, clean code, less prone to errors, more peace of mind, while still being close to the metal. Here's a sample for 3.0:

    var queryParams = new 
    {
        FirstName = "John",
        Street = "Creek Street"
    };

    var persons = dbConnection.Find<Person>(statement => statement
        .WithAlias("person")
        .Include<Address>(join => join
            .InnerJoin()
            .WithAlias("address"))
        .Where($@"
            {nameof(Person.FirstName):of person} = {nameof(queryParams.FirstName):P} 
            AND {nameof(Address.Street):of address} = {nameof(queryParams.Street):P}")  
        .OrderBy($"{nameof(Person.LastName):of person} DESC")  
        .Skip(10)  
        .Top(20)  
        .WithParameters(queryParams);

Features:

  • Support for LocalDb, Ms Sql Server, MySql, SqLite, PostgreSql.
  • Entities having composite primary keys are supported, however note that the CRUD operations only support UNIQUE primary keys.
  • Multiple entity mappings are supported, useful for partial queries in large denormalized tables and data migrations between different database types.
  • All the CRUD methods accept a transaction, a command timeout, and a custom entity mapping.
  • Fast pre-computed entity queries for simple CRUD operations.
  • Compatible with component model data annotations.
  • Opt-in relationships. As of 3.0, self referenced entities and multiple joins to the same target are also supported via aliases.
  • A set of "formattables" are also included, which can be used even if you don't need the CRUD features of this library but you want to take advantage of the DB mappings.
  • A generic T4 template for C# is also provided for convenience in the NuGet package Dapper.FastCrud.ModelGenerator.
  • The following mapping styles are supported:
    • Database first (limited to SQL Server)
    • Code first, using model data annotations (preferred)
    • Fluent registration for POCO objects
    • Semi-POCO using metadata objects

Release Notes for 3.0

  • Added support for .NET Standard 2.1
  • Extended support for the MetadataType attribute in .NET Standard 2.1
  • Bulk update can now be used with parameters.
  • Format specifier ":P" added for SQL parameters.
  • Format specifiers extended to support resolution via aliases in JOINs (e.g. "nameof(prop):of alias").
  • Methods adjusted for nullable support.
  • [Breaking change] Clean separation for the formatter and the sql builder. As a result, the access to the formatter got moved out of the ISqlBuilder and into the Sql static class.
  • Extended the functionality of the Sql "formattables", exposed via the Sql static class, to allow for easy access to both the raw resolved names and their SQL ready counterparts.
  • Relationships have been reworked:
    • [Breaking change] The fluent mapping setup has changed for setting up relationships.
    • The limit of 7 entities in a JOIN was removed.
    • The main entity and the JOINed entities can now be aliased. It is now recommended to do so when working with multiple entities in a statement for easy targeting in the WHERE clause.
    • JOIN support has been extended to the GET and COUNT methods.
    • SQL statements no longer require the presence of a relationship preset in the mappings. You can join with whatever you want, using whatever navigation properties you want (or none) and with any ON clause you desire.
    • Added support for self referenced entities (via InverseProperty attribute / fluent mappings / directly in the query).
    • Added support for one-to-one relationships (via InverseProperty attribute / fluent mappings / directly in the query).
    • Added support for multiple references to the same target (via InverseProperty attribute / fluent mappings / directly in the query).
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (12)

Showing the top 5 NuGet packages that depend on Dapper.FastCrud:

Package Downloads
CyberEye.Common.Lib

Package chứa các hàm tiện ích và common

Smooth.IoC.Dapper.Repository.UnitOfWork

The package Provides a solution for the Repository and UnitOfWork patterns together with inversition of control. On the project site there are examples of Autofact, Castle.Windsor, Ninject, Simpleinjector, StructureMap, and Unity integration. The IoC framework is not an issue... It is ment to integrate nice and smooth like... The project uses tor its repository work Dapper as ORM and Dapper.FactCRUD for fluentness. But you can use is as a foundation and with any IDbConnection and IDbTransient framework you like. The library gives you the building blocks to: * Create Sessions from the IDbFactory in your methods, IDbFactory should be injected into your class's. As Session extends IDbConnection and will Open on the factory spawning the session and dispose the connection on disposal of the connection. * Your Sessions can create UnitOfWork's. As Session extends IDbConnection and will Open on the factory spawning the session and dispose the connection on disposal of the connection. * If your logic just needs "just a" UnitOfWork with a session that has the same scope, the factory can create it for you. * The IRepository and abstract concrete class should be used on your individual repository classes to provide simple and basic calls. But ofcasue you can add all the queries you want into your Repositories and use the dapper and dapper.FastCRUD (or any other extensions) functionality provided to you. * The repository abstract classes use Dapper.FastCRUD to give you a fluent ORM experience with the most common calls. * This library does not lock you to using dapper and FastCRUD, you can use any library you like that extends IDbConnection and IDbTransation, and still use the IDbFactory, ISession and IUnitOrWork. * Implemented for .net 4..0, .net 4.5.2, .net 4.6.1, .net 4.7.1+, .net 1.6 standard, .net 2.0 standard+.

Tolitech.Modules.Base.Data

Biblioteca base para a camada Data. Esta é uma biblioteca utilizada em todos os projetos Tolitech, inclusive os gerados pela ferramenta Code Generator. Mais informações em http://www.codegenerator.com.br/

Proactive.DataRepository

Proactive data repository NetStandard package.

wallet.lib.dapper

update fixed IEntity in DapperRepository

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.46 13,234 3/2/2022
3.0.45 1,111 2/22/2022
2.6.7 5,798 1/18/2022
2.5.0.39 557,948 4/19/2018
2.4.1 205,513 10/27/2016
2.4.0 6,557 9/21/2016
2.3.2 8,758 2/9/2016
2.3.0 1,702 1/2/2016
2.2.0 1,629 12/8/2015
2.1.2 1,513 10/30/2015
2.1.0 1,431 9/18/2015
2.0.0 1,676 6/1/2015
1.1.1 1,152 5/21/2015
1.1.0 1,205 5/21/2015
1.0.2 1,998 5/18/2015
1.0.1 1,347 5/16/2015
1.0.0 1,169 5/16/2015