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(1);   //查询ID=1的记录
            Db.Record<Person>.Delete(2);                        //删除ID=2的记录


            Person person = new Person { Name = "曹操", Sex = "", Age = 500 };
            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 = 3 }); //save根据主键决定是新增还是修改

            //查询一个实体
            person = db.Single<Person>(1);
            person = db.Single<Person>("where id=2");

            //删除一个实体
            db.Delete(person);
            db.Delete<Person>(1);
            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

 

转载于:https://www.cnblogs.com/slwangzi/p/9374426.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值