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