介个是一个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. 【原】AFNetworking源码阅读(六)

    [原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...

  2. 有趣的 CSS 像素艺术

    原文地址:https://css-tricks.com/fun-times-css-pixel-art/#article-header-id-4 译者:nzbin 友情提示:由于国内网络的原因,Cod ...

  3. LeetCode[5] 最长的回文子串

    题目描述 Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...

  4. 【知识必备】一文让你搞懂design设计的CoordinatorLayout和AppbarLayout联动,让Design设计更简单~

    一.写在前面 其实博主在之前已经对design包的各个控件都做了博文说明,无奈个人觉得理解不够深入,所以有了这篇更加深入的介绍,希望各位看官拍砖~ 二.从是什么开始 1.首先我们得知道Coordina ...

  5. 开发者的利器:Docker 理解与使用

    困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...

  6. MySQL 数据库双向同步复制

    MySQL 复制问题的最后一篇,关于双向同步复制架构设计的一些设计要点与制约. 问题和制约 数据库的双主双写并双向同步场景,主要考虑数据完整性.一致性和避免冲突.对于同一个库,同一张表,同一个记录中的 ...

  7. 简单Linux命令学习笔记

    1.查看进程 ps -ef | grep 关键字       /*关键字为服务名*/ netstat -unltp | grep 关键字        /*关键字为服务名或者是端口均可*/ 2.杀死进 ...

  8. 微软将向Linux用户提供SQL Server程序

    微软公司(Microsoft Corp., MSFT)将向Linux操作系统的用户提供旗下一项最赚钱的产品,这是该公司几年前无法想像的举措.这家软件巨头周一表示,将向免费的Linux Server提供 ...

  9. AutoMapper(六)

    返回总目录 List和数组 AutoMapper只要求元素类型的配置而不要求可能会用到的任何数组或者list类型.比如,我们有一个简单的源和目标类型: public class Source{ pub ...

  10. FastClick 填坑及源码解析

    最近产品妹子提出了一个体验issue —— 用 iOS 在手Q阅读书友交流区发表书评时,光标点击总是不好定位到正确的位置: 如上图,具体表现是较快点击时,光标总会跳到 textarea 内容的尾部.只 ...