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> 去设置一个缓存
  • 相关阅读:
    importlib
    js给kindeditor添加值
    在kindeditor 获取textarea 中 输入的值
    获取lable选中时触发事件
    Django之ModelForm组件
    KindEditor 和 xss过滤
    from 动态显示select数据
    CBV 验证装饰器的使用
    views获取数据 -- request包含的方法
    django -- 自定义simpletag 和 filter
  • 原文地址:https://www.cnblogs.com/wangchuang/p/12577448.html
Copyright © 2011-2022 走看看