介介介是一个ORM
介个是一个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的更多相关文章
- 【手撸一个ORM】MyOrm的使用说明
[手撸一个ORM]第一步.约定和实体描述 [手撸一个ORM]第二步.封装实体描述和实体属性描述 [手撸一个ORM]第三步.SQL语句构造器和SqlParameter封装 [手撸一个ORM]第四步.Ex ...
- 【手撸一个ORM】第六步、对象表达式解析和Select表达式解析
说明 一个Orm自然不仅仅包含条件表达式,还会有如下的场景: OrderBy(s => s.StudentName) Select<StudentDto>(s => new S ...
- 话说C#程序员人手一个ORM
话说C#程序员人手一个ORM,确实没有必要再写ORM了,不过我的ORM并不是新的,是从DBHelper演化过来的,算是DBHelper魔改版. 目前流行的ORM有EF.Dapper.SqlSugar. ...
- QR Code簡介、介紹
QR Code為目前最常被使用的一種二維條碼,1994年由日本Denso-Wav e公司發明,QR是英文Qu ickResponse的縮寫,即快速反應的意思,1999年時,公布了符合日本當地的標準-「 ...
- 如何做好一个ORM框架
很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有用户群体大的ORM有保证,这点是不可否认确是事实. 但是往往用户群体大的ORM又有不足之处,就拿用户群体最多的两个ORM来说一下吧 1.EF ...
- 我们一起来动手开发一个Orm框架,开源发布
我们追求的方向 1)高性能. 这也是架构创建的目的之一,已经将它的性能提升到了极致.大家可以自己测试.我可以说其性能是数一数二的.连接地址:Moon洗冤录 2)易用性强 我想,用过Moon.ORM的应 ...
- 一个ORM的实现(附源代码)
1 前言 经过一段时间的编写,终于有出来一个稳定的版本,期间考虑了多种解决方案也偷偷学了下园子里面大神们的作品. 已经有很多的ORM框架,为什么要自己实现一个?我的原因是在遇到特殊需求时,可以在ORM ...
- 写一个ORM框架的第一步
新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...
- 写一个ORM框架的第一步(Apache Commons DbUtils)
新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...
随机推荐
- 【.net 深呼吸】程序集的热更新
当一个程序集被加载使用的时候,出于数据的完整性和安全性考虑,程序集文件(在99.9998%的情况下是.dll文件)会被锁定,如果此时你想更新程序集(实际上是替换dll文件),是不可以操作的,这时你得把 ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- Linux下Nodejs安装(完整详细)
之前安装过windows下以及Mac下的node,感觉还是很方便的,不成想今天安装linux下的坑了老半天,特此记录. 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码, ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(70)-微信公众平台开发-成为开发者
系列目录 前言: 一.阅读这段系列之前,你必须花半天时间大致阅读微信公众平台的API文档,我尽量以简短快速的语言与大家分享一个过程 二.借助微信公众平台SDK Senparc.Weixin for C ...
- 【开源】.Net Api开放接口文档网站
开源地址:http://git.oschina.net/chejiangyi/ApiView 开源QQ群: .net 开源基础服务 238543768 ApiView .net api的接口文档查看 ...
- ASP.NET MVC开发日常一:SessionID合理清除
在MVC Web开发中临时存储数据一般会用到Session,Cookie,ViewBag,ViewData,TempData.每个的使用场景是不同,具体区别有空再补上. Session数据最敏感,最需 ...
- 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)
在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...
- SQL-日期函数
GETDATE() :取得当前日期时间 DATEADD (datepart , number, date ),计算增加以后的日期.参数date为待计算的日期:参数number为增量:参数datepar ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- Oracle创建表空间
1.创建表空间 导出Oracle数据的指令:/orcl file=C:\jds.dmp owner=jds 导入Oracle数据的指令:imp zcl:/orcl file=C:\jds.dmp fu ...