.NETdotNET

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

2020-03-13  本文已影响0人  叶先生_34e6

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 支持

其他条件

除了上面介绍的 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语句,返回更新后的记录

系列文章导航

上一篇 下一篇

猜你喜欢

热点阅读