PetaPoco 是一个开源轻量级ORM,够小,够快,单文件

  在GitHub上有很高的人气 1377星,几年来作者一直在更新

  当前版本6.0.317 - Netstandard 2.0(同时支持.net core、.net framework4.0+),也可下载单独的平台版本

  github: https://github.com/CollaboratingPlatypus/PetaPoco

  • 像Dapper 够快是因为使用dynamic生成分配列值和属性
  • 像Massive 只有一个文件,很容易添加到任何项目的编译
  • 像Massive  支持dynamic Expandos
  • 不像Massive 不使用强类型POCO's
  • 像ActiveRecord 支持对象和数据库表之间的关系
  • 像SubSonic 支持使用T4模板生成poco类

功能特点

  • 够小,完全没有任何依赖
  • 配置简单
  • 包含Insert/Delete/Update/Save and IsNew方法助手
  • 根据请求自动分页,可以指定输出记录总数和指定页码
  • 支持事务
  • 更好的参数替换支持,抓取对象属性作为命名参数
  • 优秀的性能,通过去除Linq使用Dynamic方法进行属性赋值
  • 使得编写内联SQL SQL builder类更加容易
  • 包含T4模板,可以快速生成Model类
  • 方便扩展异常日志
  • 支持SQL Server, SQL Server CE, MS Access, SQLite, MySQL, MariaDB, Firebird, PostgreSQL (支持Oracle但没有做集成测试).
  • 支持Net Standard 2.0, .NET 4.0/4.5+ or Mono 2.8 及以上
  • 有Xunit单元测试
  • 有各种数据库的集成测试
  • 开源

 1.添加Nugit引用,搜索(PetaPoco)

    

  此处下载的是第一个,会创建以下内容,所说的单文件就是只有PetaPoco.cs一个文件,项目中也可只保留此文件;Generated文件夹存放的是T4模板,用于生成实体类,如不需要可以删除

2.配置数据库连接,根据T4模板生成Model类,如不需要则可省略此步

<add name="SqlServer" connectionString="Data Source=.;uid=sa;pwd=we;database=JD;" providerName="System.Data.SqlClient"/>

3.保存后,会生成Database.cs文件内容如下:

4.如果数据库表有新增或修改字段,执行以下操作后,会自动生成相应的实体类。

 3.实操:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace PetaPocoDemo
{
class Program
{
static void Main(string[] args)
{
Person p1 = Db.Record<Person>.SingleOrDefault(); //查询ID=1的记录
Db.Record<Person>.Delete(); //删除ID=2的记录 Person person = new Person { Name = "曹操", Sex = "男", Age = };
var db = Db.GetInstance(); db.Execute("truncate table person"); //保存一个实体
db.Save(person);
db.Save(new Person { Name = "孙悟空" });
db.Save(new Person { Name = "孙悟空" });
db.Save("Person", "ID", new { Name = "张天天", ID = }); //save根据主键决定是新增还是修改 //查询一个实体
person = db.Single<Person>();
person = db.Single<Person>("where id=2"); //删除一个实体
db.Delete(person);
db.Delete<Person>();
db.Delete<Person>("where name='张天天'"); }
}
}
CREATE TABLE [dbo].[Person](
[ID] [INT] IDENTITY(1,1) NOT NULL,
[Name] [VARCHAR](50) NULL,
[Sex] [VARCHAR](50) NULL,
[Age] [INT] NULL,
[AddTime] [DATETIME] NULL,
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO SET ANSI_PADDING OFF
GO

PetaPoco轻量级ORM框架 - 入门安装的更多相关文章

  1. PetaPoco轻量级ORM框架 - 对Database类的进行扩展,可以返回Table格式数据

    一.有时我们需要将常用的功能添加到PetaPoco中的Database类中 实现方式有2种,以下以查询字段为例 1.通过扩展方式实现,此方式不改变被调用(Database)类名(只能增加方法) pub ...

  2. PetaPoco轻量级ORM框架 - Database API 手册

    PetaPoco Database API #region IDisposable public void Dispose() #endregion #region Constructors publ ...

  3. C# 性能优化 之 秒表 Stopwatch。 Dapper一个和petapoco差不多的轻量级ORM框架

    Sweet小马 小马同学的编程日记. C# 性能优化 之 秒表 Stopwatch. 生词解释:Diagnostics[,daɪəg'nɑstɪks] n.诊断学 using System.Diagn ...

  4. 轻量级ORM框架初探-Dapper与PetaPoco的基本使用

    一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...

  5. 轻量级ORM框架Dapper应用一:Dapper安装

    一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...

  6. .NET轻量级ORM框架Dapper入门精通

    一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...

  7. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  8. 轻量级ORM框架 QX_Frame.Bantina(二、框架使用方式介绍)

    轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介 ...

  9. 分享自己写的基于Dapper的轻量级ORM框架~

    1.说明 本项目是一个使用.NET Standard 2.0开发的,基于 Dapper 的轻量级 ORM 框架,包含基本的CRUD以及根据表达式进行一些操作的方法,目前只针对单表,不包含多表连接操作. ...

随机推荐

  1. centos 网络很慢且无法远程登陆的解决办法

    安装了centOS,但是发现网速实在是卡得几乎不能上网,连百度都打不开 后来想到偶然记得有一次看过一段话,说到关闭ipv6,测试来一下,果然有效,关闭来ipv6打开网速飞快. 关闭方法,在/etc/m ...

  2. 记一次tomcat自动退出问题

    问题 环境: centos/tomcat8/jdk1.8 最近遇到部署在服务器的tomcat总是过一段时间就自动结束进程 ; 通过监控tomcat 日志文件(tail -f ./logs/catali ...

  3. SpringBoot之整合Redis

    一.SpringBoot整合单机版Redis 1.在pom.xml文件中加入redis的依赖 <dependency> <groupId>org.springframework ...

  4. HDU 2544(简单最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=2544 /* 使用pair代替结构 */ #include <iostream> #include & ...

  5. docker启动容器报错:IPv4 forwarding is disabled. Networking will not work

    报这个错误会导致宿主机以外的pc 访问不了容器 按照网上的解决办法: 在/usr/lib/sysctl.d/00-system.conf文件后加net.ipv4.ip_forward=1 即可 然后重 ...

  6. python学习之老男孩python全栈第九期_day018知识点总结——正则表达式、re模块

    一. 正则表达式 正则表达式本身和python没有什么关系,就是匹配字符串内容的一种规则. 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成 ...

  7. Python随笔目录

    Python 一.Python基础 Python入门 数据类型 函数(迭代器生成器三元表达式) 模块和常用内置模块 面向对象 网络编程(socket) 并发编程 ... 二.数据库 MySQL PyM ...

  8. 洛谷P3384 树链剖分

    如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z 操作2: 格式: 2 x ...

  9. 20个网页设计师应该学习的CSS3经典教程实例

    CSS3技术离我们越近,我们也应该学习一些简单的CSS3技术了,而学习最基本的方法就是模仿,以及观看大师作品的案例.收集了20个基础教程,均是涉及到css3应用范围,值得你和我一起共同学习. Smoo ...

  10. JSTL总结摘要

    一 概述 1.什么是JSTL? JSP Standard Taglib,一个定义了一系列标签的标签库,以取代在JSP页面中嵌套的java代码,经常与EL结合使用,使页面风格统一,维护方便. JSTL标 ...