FreeSql (十三)更新数据时忽略列
static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.MySql, connectionString)
.UseAutoSyncStructure(true) //自动同步实体结构到数据库
.Build(); //请务必定义成 Singleton 单例模式
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; }
}
保存实体,忽略一些列
fsql.Update().SetSource(item).IgnoreColumns(a => a.Clicks).ExecuteAffrows();
//UPDATE `Topic` SET `Title` = @p_0, `CreateTime` = @p_1 WHERE (`Id` = 1)
fsql.Update().SetSource(item).IgnoreColumns(a => new { a.Clicks, a.CreateTime }).ExecuteAffrows();
//UPDATE `Topic` SET `Title` = @p_0 WHERE (`Id` = 1)
API
| 方法 | 返回值 | 参数 | 描述 |
|---|---|---|---|
| SetSource | T1 | IEnumerable |
更新数据,设置更新的实体 | |
| IgnoreColumns | Lambda | 忽略的列 | |
| Set | Lambda, value | 设置列的新值,Set(a => a.Name, "newvalue") | |
| Set | Lambda | 设置列的的新值为基础上增加,Set(a => a.Clicks + 1),相当于 clicks=clicks+1 | |
| SetDto | object | 根据 dto 更新的方法 | |
| SetRaw | string, parms | 设置值,自定义SQL语法,SetRaw("title = @title", new { title = "newtitle" }) | |
| Where | Lambda | 表达式条件,仅支持实体基础成员(不包含导航对象) | |
| Where | string, parms | 原生sql语法条件,Where("id = @id", new { id = 1 }) | |
| Where | T1 | IEnumerable |
传入实体或集合,将其主键作为条件 | |
| WhereExists | ISelect | 子查询是否存在 | |
| CommandTimeout | int | 命令超时设置(秒) | |
| WithTransaction | DbTransaction | 设置事务对象 | |
| WithConnection | DbConnection | 设置连接对象 | |
| ToSql | string | 返回即将执行的SQL语句 | |
| ExecuteAffrows | long | 执行SQL语句,返回影响的行数 | |
| ExecuteUpdated | List |
执行SQL语句,返回更新后的记录 |
系列文章导航
-
(十三)更新数据时忽略列