DapperPoco -- 基于Dapper的、轻量级的、高性能的、简单的、灵活的ORM框架

DapperPoco是基于Dapper的ORM框架,旨在结合Dapper的高性能和简单性,同时增加了灵活性。它不满足于Entity Framework的不够灵活和Dapper的原生SQL操作不便,也不满足PetaPoco缺少批量操作的功能。DapperPoco提供了Fluent API实体映射,支持批量插入、更新,并保持高性能。项目已开源在GitHub上,供开发者参考和使用。
摘要由CSDN通过智能技术生成

为什么要重复造轮子

因为现有的轮子都在某些方面不太令我满意,下面我来一一点评一下,欢迎拍砖。

Entity Framework

我喜欢傻瓜化使用方式的框架,同时又不失灵活性。

EF虽然使用起来足够简单,但却不够灵活。例如,在EF Core中你无法用原生SQL写一个多表连接查询(返回的结果是多表连接的结果)

单表简单条件查询还好,多表查询时生成的SQL性能实在不敢恭维,我更喜欢自己写SQL,可控性更高,心里有底

EF的设计不利于项目的分层;我理想的设计是隔离、低耦合,和数据库打交道的事就交给Db层好了,所有数据库的特性都隔离在Db层内部,对外按业务提供傻瓜化的接口。
而使用EF你没法做到真正的隔离

Dapper

我喜欢它的轻量级,高性能。但它"只支持"原生SQL读写数据库,使用起来还是不太方便。

很多常用的情景其实可以封装一下不用写SQL的,像EF一样,直接Add一个Entity

虽然现在Dapper已经有了这样一个封装,但目前来看实在过于粗糙

PetaPoco

它可以像EF一样直接Add一个Entity,也可以像Dapper一样自己写原生SQL,按理说这已经很完美了。

但是,它不支持批量插入、更新啊

DapperPoco

在实在找不到满意框架的情况下,于是DapperPoco就诞生了,它是基于Dapper高度封装的,有Dapper的一切优点,同时也弥补了它的不足,它有如下特点:

  1. 高性能(与Dapper一致),以热启动后计算(第一次启动有缓存过程)
  2. 像EF一样使用简单,也可像Dapper一样灵活使用原生SQL
  3. 支持使用Fluent API定义实体映射
  4. 内部模块化灵活、可扩展

现已将其开源并放到了github上,地址为:https://github.com/md-frank/DapperPoco

如何使用

首先定义一个Poco类

复制代码
//表示文章表里的一条记录
public class Article
{
    public long Id { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
}
复制代码

创建DbContext

复制代码
class MasterDbContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseConnectionString("连接字符串");
        //
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值