码迷,mamicode.com
首页 > 其他好文 > 详细

介介介是一个ORM

时间:2016-08-12 13:03:20      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

介个是一个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

标签:

原文地址:http://www.cnblogs.com/InCsharp/p/5764224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!