Originally the brainchild of Brad Robinson.
PetaPoco is currently maintained and exteneded by Wade Baglin (@pleb) and Aaron Sherber (@asherber).
Read more about the v6 update
PetaPoco is available from: NuGet PetaPoco.Compiled
| Master | Development | Nuget | 
|---|---|---|
For configuration, code examples and other general information See the docs
- PetaPoco.SqlKata lets you use the powerful query builder SqlKata to build SQL queries for PetaPoco.
 - StaTypPocoQueries.PetaPoco provides the ability to use some simple, strongly typed, Intellisensed LINQ expressions in your queries.
 - PetaPoco.DBEntityGenerator lets you generate Pocos from your DB (T4 template replacement).
 
| Nuget (Single file) | Nuget Core (+t4 templates) | Nuget Core Compiled (dll) | 
|---|---|---|
- Like Dapper, it's fast because it uses dynamic method generation (MSIL) to assign column values to properties
 - Like Massive, it now also supports dynamic Expandos too
 - Like ActiveRecord, it supports a close relationship between object and database table
 - Like SubSonic, it supports generation of poco classes with T4 templates (V5 only)
 - Like Massive it's available as single file that you easily add to any project or complied. (V5 only)
 
- Tiny, and absolutely no dependencies!
 - Asychronise or synchronise, the choice is yours. (aka async) (V6)
 - Works with strictly undecorated POCOs, or attributed almost-POCOs.
 - Easy to configure and includes fluent configuration out of the box.
 - Helper methods for Insert/Delete/Update/Save and IsNew
 - Paged requests automatically work out total record count and fetch a specific page.
 - Easy transaction support.
 - Better parameter replacement support, including grabbing named parameters from object properties.
 - Great performance by eliminating Linq and fast property assignment with DynamicMethod generation.
 - The query language is good ole SQL.
 - Includes a low friction SQL builder class that makes writing inline SQL much easier.
 - Includes T4 templates to automatically generate POCO classes for you. (V5)
 - Hooks for logging exceptions, installing value converters and mapping columns to properties without attributes.
 - Works with SQL Server, SQL Server CE, MS Access, SQLite, MySQL, MariaDB, Firebird, and PostgreSQL. (Oracle supported but does not have integration tests).
 - Works under Net Standard 2.0, .NET 4.0/4.5+ or Mono 2.8 and later.
 - Has Xunit unit tests.
 - Has supported DBs integration tests.
 - OpenSource (MIT License or Apache 2.0)
 
Save an entity
    db.Save(article);
    db.Save(new Article { Title = "Super easy to use PetaPoco" });
    db.Save("Articles", "Id", { Title = "Super easy to use PetaPoco", Id = Guid.New() });Get an entity
    var article = db.Single<Article>(123);
    var article = db.Single<Article>("WHERE ArticleKey = @0", "ART-123");Delete an entity
    db.Delete(article);
    db.Delete<Article>(123);
    db.Delete("Articles", "Id", 123);
    db.Delete("Articles", "ArticleKey", "ART-123");Plus much much more.
PetaPoco welcomes input from the community. After all, what is a product without users? If you’d like to contribute, please take the time to read the contribution guide. We would also suggest you have a quick read of Contributing to Open Source on GitHub.
A product like PetaPoco isn't the effort of one person, but rather a combined effort of many. For those individuals who rise above and beyond we have a special place to honour them.
