zoukankan      html  css  js  c++  java
  • 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> 去设置一个缓存
  • 相关阅读:
    静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)
    SQLLITE
    SQLite数据表和视图
    SQLite
    DELPHI 泛型
    indy10 学习2
    indy10 线程池
    indy
    Indy10 控件的使用(2)TidTCpServer组件学习
    Socket心跳包机制
  • 原文地址:https://www.cnblogs.com/wangchuang/p/12577448.html
Copyright © 2011-2022 走看看