zoukankan      html  css  js  c++  java
  • sqlsugar 使用汇总

    更新:

    public static int UpdateRoleById(Sys_Role model)
    {
    return DB.Updateable(model).UpdateColumns(it => new
    {
    it.Name,
    it.Remark,
    it.OperatorId,
    it.OperateTime
    }).ExecuteCommand();  //跟新指定列
    // return DB.Updateable(model).IgnoreColumns(it => new{it.CreateTime,it.CreatorId}).ExecuteCommand();//更新忽略指定的列
    //return DB.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();//更新忽略所有为Null的列
    }

    根据条件判段是否执行过滤,我们可以用WhereIf来实现,true执行过滤,false则不执行

    var list = db.Queryable<Student>()
        .WhereIF(!string.IsNullOrEmpty(a),it => it.Name == a)
        .WhereIF(!string.IsNullOrEmpty(b), it => it.Name == b).ToList();
     

    //result.RowList = DB.Queryable<Sys_Log,Sys_User>((it, su) => new object[] { JoinType.Left, it.CreatorId == su.Id })
    // .Select((it,su) => new Sys_Log { Id=it.Id,Name=it.Name, Operation=it.Operation,Status=it.Status,LoginIp=it.LoginIp,CreateTime=it.CreateTime, CreatorName =su.UserName})
    // .WhereIF(!string.IsNullOrEmpty(login), Creator == login)
    // .WhereIF(operation != 0, it => it.Operation == operation)
    // .WhereIF(logstatus != 0, it => it.Status == logstatus)
    // .WhereIF(date1.Year !=1,it => it.CreateTime >= date1)
    // .WhereIF(date2.Year !=1, it => it.CreateTime <= date2)
    // .ToPageList(pageNum, pageSize, ref totalNumber);
    result.RowList = DB.Queryable<Sys_Log>()
    .WhereIF(!string.IsNullOrEmpty(login),it =>it.Creator == login)
    .WhereIF(operation != 0, it => it.Operation == operation)
    .WhereIF(logstatus != 0, it => it.Status == logstatus)
    .WhereIF(date1.Year != 1, it => it.CreateTime >= date1)
    .WhereIF(date2.Year != 1, it => it.CreateTime <= date2)
    .WithCache()
    .ToPageList(pageNum, pageSize, ref totalNumber);

    --Mapper

    DB.Queryable<Merchant_Model, Sys_User>((su, sr) => new object[] { JoinType.Left, su.AgentId == sr.Id })

    .WhereIF(!string.IsNullOrEmpty(query), su => su.Name.Contains(query))
    .Mapper((su) => su.AgentName = su.AgentId == 0 ? "无上级代理" : su.AgentName)
    .OrderBy(su => su.Id, OrderByType.Desc)
    .WithCache()
    .ToPageList(pageNum, pageSize, ref totalNumber);

    使用缓存查询

     var list=db.Queryable<Student, School>((s1, s2) => s1.Id == s2.Id).Select(s1 => s1).WithCache().ToList();//可以设置过期时间WithCache(60)

    删除缓存

    我们需要删除缓存也相当方便,只需要在对该表操作的时候加 RemoveDataCache 就能把查询中引用该表的缓存全部清除

      db.Deleteable<Student>().Where(it => it.Id == 1).RemoveDataCache().ExecuteCommand();

    el-table 

    <el-table-column label="用户类型" prop="userType">
    <template scope="scope">
    <el-tag type="success" v-if="scope.row.userType == 1">管理员</el-tag>
    <el-tag type="info" v-if="scope.row.userType == 2">普通用户</el-tag>
    </template>
    </el-table-column>

    in list 

    DB.Queryable<Sys_User>().In(it => it.UserType, new int[] { 3, 4, 5 }).WithCache().ToList()

    //返回值为List<string>

    List<string> data = db.Queryable<Student>().Select(f => f.Name).ToList();
     
     
    只更新一个列,主键要有值
    var t3 = db.Updateable(updateObj).UpdateColumns(it => new { it.Name }).ExecuteCommand();
     
    忽略更新的列
    var t4 = db.Updateable(updateObj)
    .IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteCommand();
     
    动态建表:每月建一个表
    var list = DB.Queryable<ReportStatistics_Model>().AS("sys_order_"+ DateTime.Now.ToString("YYYYMM")).Where(it => it.IspId == ispId).ToList();
  • 相关阅读:
    Vue
    linux-----docker
    linux基础
    Flask基础
    websocket
    css
    Mysql数据库基础
    IO多路复用
    线程和协程
    sh_02_del关键字
  • 原文地址:https://www.cnblogs.com/csj007523/p/12736865.html
Copyright © 2011-2022 走看看