README.markdown
    PetaPoco Logo

    Welcome to the official PetaPoco repository

    Originally the brainchild of Brad Robinson.

    PetaPoco is maintained and extended by Wade Baglin (@pleb) and Aaron Sherber (@asherber).

    Version 6 - Netstandard 2.0+, 4.0, 4.5+

    Read more about the v6 update

    PetaPoco is available from: NuGet PetaPoco.Compiled

    Master Development Nuget
    Build status Build status Nuget Downloads

    Documentation

    For configuration documentation, code examples, and other general usage 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 a single file that you easily add to any project or complied. (V5 only)

    Features at a Glance

    • Tiny, and absolutely no dependencies!
    • Asychronous (aka async) or synchronous: the choice is yours. (V6)
    • Works with strictly undecorated POCOs, or attributed almost-POCOs.
    • Easy to configure, including fluent configuration out of the box.
    • Helper methods for Insert/Delete/Update/Save and IsNew
    • Paged requests automatically work out the 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 is 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 would 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

    PetaPoco is not the result of just one person's labour, but rather, the product of a combined effort by many. For those individuals who go above and beyond, we have a special place to honour them.

    项目简介

    PetaPoco是一个微小的,快速的,单个文件的微型ORM,可以运行在.NET和Mono平台上。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。

    发行版本

    当前项目没有发行版本

    贡献者 46

    全部贡献者

    开发语言

    • C# 98.8 %
    • TSQL 0.7 %
    • PLpgSQL 0.5 %
    • PowerShell 0.1 %