介个是一个ORM,介个ORM基于Dapper扩展。

为什么需要一个ORM呢?

支持简单的LINQ查询

但是不能连表查询,why?why?why?为什么不能连接查询 ^.^ ok.但是就是不支持。哈哈哈哈,最后谈一谈为什么

SQL 基本

基本的写法

一次

二次

三次

第一:会造成系统臃肿,DLL编译代码量变大

第二:不方便维护

第三: DLL都变大了,创建的时候内存不占大了....................................................好吧,又开始瞎扯蛋

介个时候,我们需要一个方便的能重复使用的东西(ORM)

开始来介绍使用方法吧(ORM最后都是执行SQL,so model to sql):

实体类(OK,我们用到了特性)

Table:表名

Key:主键

Identity:自动增长列

Status:逻辑删除(假删除)

哈哈 ,几百张表的话,我是不是需要手动去写? no.no.no. 我们有T4模板 自动生成

现在看下扩展结构:

Find(查询):

TEntity Find(Expression<Func<TEntity, bool>> expression)

expression 查询条件:重复的只会查询一条 Top 1

Delete(删除):

bool Delete(TEntity instance) :

instance : 根据实体类中的Key(主键) 删除

bool Delete(Expression<Func<TEntity, bool>> expression) :

expression :条件 和查询一样

Update(修改):

bool Update(TEntity instance):

instance:根据实体类Key(主键)修改实体类

Update(TEntity instance, Expression<Func<TEntity, object>> field):

instance \ field :根据实体类Key(主键)修改实体类指定的字段(field)

bool Update(TEntity instance, Expression<Func<TEntity, object>> field, Expression<Func<TEntity, bool>> expression):

instance \ field \ expression :根据指定条件(expression)修改实体类(instance)指定的字段(field->field为Null时为全部字段)

好吧,再来个分页:

from: 第几页

to :每页多少条

expression:条件

scfield : 排序条件

idDesc : 是否降序

特么的没事务啊,没事务,不完善什么ORM....我也想说,你自己写的什么什么玩样?

特么的没连表查询啊,什么ORM,MDZZ~~~

无需链表、无需子查询、数据库中每表可分布在不同服务器,完美解决数据关系,轻松承载百亿数据,千万流量,完美思想............哈哈哈

数据连接池 --->

1. 资源重用

2. 更快的系统响应速度

3. 新的资源分配手段

4. 统一的连接管理,避免数据库连接泄漏

配置文件,没错就是配置文件。

key = default 默认的连接字符串 :未配置的实体类连接默认配置的数据库

key = 表名 :配置的实体类连接配置的数据库

why?why?why? 为了方便扩展分表分库:

数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。

好吧,这是简述,骚年找资料去吧,用'洪荒之力';

介个样子的话连表查询平常的写法不能满足啊,怎么办?:

使用AutoMapper 连接起来即可,Foreach...代码多啊。

事务,怎么办,自己写咯:

如果数据一致性要求高,那只能锁(分布式锁),或者数据库写存储过程事务....

so .....介介介就是一个ORM!

开源地址

介介介是一个ORM的更多相关文章

  1. 【手撸一个ORM】MyOrm的使用说明

    [手撸一个ORM]第一步.约定和实体描述 [手撸一个ORM]第二步.封装实体描述和实体属性描述 [手撸一个ORM]第三步.SQL语句构造器和SqlParameter封装 [手撸一个ORM]第四步.Ex ...

  2. 【手撸一个ORM】第六步、对象表达式解析和Select表达式解析

    说明 一个Orm自然不仅仅包含条件表达式,还会有如下的场景: OrderBy(s => s.StudentName) Select<StudentDto>(s => new S ...

  3. 话说C#程序员人手一个ORM

    话说C#程序员人手一个ORM,确实没有必要再写ORM了,不过我的ORM并不是新的,是从DBHelper演化过来的,算是DBHelper魔改版. 目前流行的ORM有EF.Dapper.SqlSugar. ...

  4. QR Code簡介、介紹

    QR Code為目前最常被使用的一種二維條碼,1994年由日本Denso-Wav e公司發明,QR是英文Qu ickResponse的縮寫,即快速反應的意思,1999年時,公布了符合日本當地的標準-「 ...

  5. 如何做好一个ORM框架

    很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有用户群体大的ORM有保证,这点是不可否认确是事实. 但是往往用户群体大的ORM又有不足之处,就拿用户群体最多的两个ORM来说一下吧 1.EF ...

  6. 我们一起来动手开发一个Orm框架,开源发布

    我们追求的方向 1)高性能. 这也是架构创建的目的之一,已经将它的性能提升到了极致.大家可以自己测试.我可以说其性能是数一数二的.连接地址:Moon洗冤录 2)易用性强 我想,用过Moon.ORM的应 ...

  7. 一个ORM的实现(附源代码)

    1 前言 经过一段时间的编写,终于有出来一个稳定的版本,期间考虑了多种解决方案也偷偷学了下园子里面大神们的作品. 已经有很多的ORM框架,为什么要自己实现一个?我的原因是在遇到特殊需求时,可以在ORM ...

  8. 写一个ORM框架的第一步

    新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...

  9. 写一个ORM框架的第一步(Apache Commons DbUtils)

    新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...

随机推荐

  1. LeetCode-4MedianofTwoSortedArrays(C#)

    # 题目 4. Median of Two Sorted Arrays There are two sorted arrays nums1 and nums2 of size m and n resp ...

  2. ABP文档 - 通知系统

    文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...

  3. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  4. dubbo服务提供与消费

    一.前言 项目中用到了Dubbo,临时抱大腿,学习了dubbo的简单实用方法.现在就来总结一下dubbo如何提供服务,如何消费服务,并做了一个简单的demo作为参考. 二.Dubbo是什么 Dubbo ...

  5. ASP.NET Core的路由[5]:内联路由约束的检验

    当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对象的所有约束.路由系统采用IRouteC ...

  6. [原][Docker]特性与原理解析

    Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...

  7. 【云知道】究极秒杀Loadrunner乱码

    Loadrunner乱码一击必杀 之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情 ...

  8. C#通过NPOI操作Excel

    参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...

  9. animate.css(第三方动画使用方法)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Monaco; color: #a5b2b9 } animation 语法: animatio ...

  10. H3 BPM让天下没有难用的流程之技术体系

    一.技术架构 H3 BPM 基于微软.NET 技术架构,采用C#语言开发,以高开放.高扩展.高性能为核心准则,遵循分层的设计原理,结合最新的B/S 以及智能手机应用开发技术研发的. 图:H3 BPM  ...