美文网首页.NETdotNET
FreeSql 教程 (十一)更新数据 Where

FreeSql 教程 (十一)更新数据 Where

作者: 叶先生_34e6 | 来源:发表于2020-03-13 21:00 被阅读0次

    FreeSql 以 MIT 开源协议托管于 github:https://github.com/2881099/FreeSql

    var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + 
        "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10";
    
    static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
        .UseConnectionString(FreeSql.DataType.MySql, connstr)
        .UseAutoSyncStructure(true) //自动同步实体结构到数据库
        .Build(); //请务必定义成 Singleton 单例模式
    
    [Table(Name = "tb_topic")]
    class Topic {
        [Column(IsIdentity = true, IsPrimary = true)]
        public int Id { get; set; }
        public int Clicks { get; set; }
        public string Title { get; set; }
        public DateTime CreateTime { get; set; }
    }
    

    动态条件

    Update<Topic>(object dywhere)
    

    dywhere 支持

    • 主键值
    • new[] { 主键值1, 主键值2 }
    • Topic对象
    • new[] { Topic对象1, Topic对象2 }
    • new { id = 1 }

    其他条件

    除了上面介绍的 dywhere 构造参数外,还支持 Where lambda/sql 方法

    fsql.Update<Topic>()
      .Set(a => a.Title, "新标题")
      .Where(a => a.Id == 1)
      .ExecuteAffrows();
    //UPDATE `tb_topic` SET Title = @title WHERE (Id = 1)
    

    API

    方法 返回值 参数 描述
    Where <this> Lambda 表达式条件,仅支持实体基础成员(不包含导航对象)
    Where <this> string, parms 原生sql语法条件,Where("id = ?id", new { id = 1 })
    Where <this> T1 | IEnumerable<T1> 传入实体或集合,将其主键作为条件
    WhereExists <this> ISelect 子查询是否存在
    ToSql string 返回即将执行的SQL语句
    ExecuteAffrows long 执行SQL语句,返回影响的行数
    ExecuteUpdated List<T1> 执行SQL语句,返回更新后的记录

    系列文章导航

    相关文章

      网友评论

        本文标题:FreeSql 教程 (十一)更新数据 Where

        本文链接:https://www.haomeiwen.com/subject/stjudhtx.html