PetaPoco轻量级ORM框架 - 入门安装
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框架 - 入门安装的更多相关文章
- PetaPoco轻量级ORM框架 - 对Database类的进行扩展,可以返回Table格式数据
一.有时我们需要将常用的功能添加到PetaPoco中的Database类中 实现方式有2种,以下以查询字段为例 1.通过扩展方式实现,此方式不改变被调用(Database)类名(只能增加方法) pub ...
- PetaPoco轻量级ORM框架 - Database API 手册
PetaPoco Database API #region IDisposable public void Dispose() #endregion #region Constructors publ ...
- C# 性能优化 之 秒表 Stopwatch。 Dapper一个和petapoco差不多的轻量级ORM框架
Sweet小马 小马同学的编程日记. C# 性能优化 之 秒表 Stopwatch. 生词解释:Diagnostics[,daɪəg'nɑstɪks] n.诊断学 using System.Diagn ...
- 轻量级ORM框架初探-Dapper与PetaPoco的基本使用
一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...
- 轻量级ORM框架Dapper应用一:Dapper安装
一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...
- .NET轻量级ORM框架Dapper入门精通
一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...
- ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...
- 轻量级ORM框架 QX_Frame.Bantina(二、框架使用方式介绍)
轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介 ...
- 分享自己写的基于Dapper的轻量级ORM框架~
1.说明 本项目是一个使用.NET Standard 2.0开发的,基于 Dapper 的轻量级 ORM 框架,包含基本的CRUD以及根据表达式进行一些操作的方法,目前只针对单表,不包含多表连接操作. ...
随机推荐
- 【转】合理的布局,绚丽的样式,谈谈Winform程序的界面设计
从事Winform开发很多年了,由于项目的需要,设计过各种各样的界面效果.一般来说,运用传统的界面控件元素,合理设计布局,能够设计出比较中规中矩的标准界面:利用一些换肤的控件或者部分界面组件,能够设计 ...
- Angular 4+ 修仙之路
Angular 4.x 快速入门 Angular 4 快速入门 涉及 Angular 简介.环境搭建.插件表达式.自定义组件.表单模块.Http 模块等 Angular 4 基础教程 涉及 Angul ...
- prism.js使页面代码变得漂亮
第一次接触prism.js,并把它用到了园子里. 装逼如风,常伴吾身.有了如此利器,从此院子里我的代码是"最"漂亮的! 身为程序员深刻体会代码高亮在生产过程中是多么的重要.以下便是 ...
- LINQ-Where子句与select子句
1.Where子句 where子句的作用就是筛选元素,除了开始喝结束位置,where子句几乎可以出现在LINQ表达式的任意位置.一个LINQ表达式中可以有Where子句,也可以没有:可以有一个,可以有 ...
- MySQL---2、安装与部署
1.MySQL下载 MySQL版本的选择MySQL Community Server 社区版本,开源免费,但不提供官方技术支持.MySQL Enterprise Edition 企业版本,需付费,可以 ...
- C#中区别多态、重载、重写
重写是指重写基类的方法,在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override. 格式: 基类中: public virtual void myMethod() { } 子 ...
- 7. Reverse Integer 反向输出整数 easy 9. Palindrome Number 判断是否是水仙花数 easy
Given a 32-bit signed integer, reverse digits of an integer. 将32位整数反向输出. Note:Assume we are dealing ...
- groovy实现循环、交换变量、多赋值、?.运算符
/** * Created by Jxy on 2019/1/3 10:01 * 1.实现循环的方式 * 2.安全导航操作符---?. * 3.一次性赋值给多个变量 */ 0.upto(2){ pri ...
- 基于easyUI实现登录界面
此文章是基于 EasyUI+Knockout实现经典表单的查看.编辑 一. 准备工作 1. 点击此下载相关文件,并把文件放到 ims 工程对应的文件夹下 二. 相关文件介绍 1. login.jsp: ...
- BZOJ P1212 [HNOI2004] L语言
标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D是若干个单词的集合. 我 ...