MVC整理笔记6数据库操作

IRepository  数据仓库接口

知识点补充:Expression,IsolationLevel,EF

 1、ReadUncommitted

    表示:未提交读。当事务A更新某条数据的时候,不容许其他事务来更新该数据,但可以进行读取操作

  2、ReadCommitted

    表示:提交读。当事务A更新数据时,不容许其他事务进行任何的操作包括读取,但事务A读取时,其他事务可以进行读取、更新

  3、RepeatableRead

    表示:重复读。当事务A更新数据时,不容许其他事务进行任何的操作,但是当事务A进行读取的时候,其他事务只能读取,不能更新

  4、Serializable

    表示:序列化。最严格的隔离级别,当然并发性也是最差的,事务必须依次进行。
 List<(string paramterName, object paramterValue)> list = new List<(string paramterName, object paramterValue)>();

新用法,不用再单独声明一个类了

 NLOG

AOP

 

查询
执行步骤:
1.先进入AOP,拦截所有attrubte
2.BaseBusiness<T>利用工厂产生一个service即一个IRepository的实例即DbRepository【一个数据库操作类】  
DbRepository里面实现增删改查是有由DbFactory产生一个BaseDbContext的实例【EF的底层操作数据库的类】 _db.Set<T>即可产生一个DBSET<T>
BusRepository是对DbRepository做了进一层的封装,BaseBusiness<T>是业务类,里面实例是BusRepository
3.service获取IQueryable,即DBSET<T> 参考https://blog.csdn.net/ydm19891101/article/details/50969323
即DBSET是IQueryable的延伸,IQueryable可以实现延迟加载
4.利用Expression实现扩展GetIQueryable得到任何IQueryable<T>
5.Deleted作为一个软删除的字段,每个数据表都要存在
6. BaseController 打上三个特性
    [JsonParamter]
    [ApiLog]
    [FormatResponse]
    BaseApiController打上一个特性
    [CheckJWT]

7.关于Operator实例化就会自动有值,Operator中调用固定属性UserId,去利用BaseCache<T> 去设置一个缓存

 

posted on 2020-03-26 21:23  HOT SUMMER  阅读(214)  评论(0编辑  收藏  举报

导航