Skip to content
Official PetaPoco, A tiny ORM-ish thing for your POCO's
Branch: development
Clone or download
Latest commit 10423ac Apr 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Media Add logo size 256 Dec 12, 2015
PetaPoco.Tests.Integration Add save documentation Apr 17, 2019
PetaPoco.Tests.Unit Format all the things Mar 27, 2019
PetaPoco Completes delete async & save Apr 4, 2019
T4Templates Move t4 templates to a more descriptive folder name Jul 3, 2018
.gitignore
LICENSE.txt Moved readme/license to root folder Mar 24, 2011
PetaPoco.sln Refactor - readying for open/close async Feb 26, 2019
PetaPoco.sln.DotSettings Completes ExecuteAsync, ExecuteScalarAsync, and QueryAsync Mar 23, 2019
README.markdown Update README.markdown Apr 11, 2019
Start-DockerForIntegrationTests.ps1 Change docker-compose to Powershell and move for easier access Jun 6, 2018
Stop-DockerForIntegrationTests.ps1
appveyor.yml Fix version not applied to assemblies Dec 9, 2018
contributing.md Update contributing.md Dec 16, 2015
docker-compose.yml Updates Firebird DB to the latest version Jun 6, 2018
honourRoll.md

README.markdown

PetaPoco Logo

Welcome to the official PetaPoco repository

Originally the brainchild of Brad Robinson

Version 6 - Netstandard 2.0+, 4.0, 4.5+

Read more about the v6 update

PetaPoco is available from: NuGet PetaPoco.Complied

Master Development Nuget
Build status Build status Nuget Downloads

Documentation

For configuration, code examples and other general information See the docs

Add-ons

Version 5 - Legacy

Nuget (Single file) Nuget Core (+t4 templates) Nuget Core Compiled (dll)
Nuget Downloads Nuget Downloads core Nuget Downloads core

PetaPoco is a tiny & fast micro-ORM for .NET

  • 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)

Features at a Glance

  • 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)

Super easy use and configuration

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.

Contributing

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.

Contributions Honour Roll

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.

You can’t perform that action at this time.