FreeSql
FreeSql copied to clipboard
希望 `IInsertOrUpdate` 对象能够添加一个 `Set` 方法
就像 IUpdate 对象的 Set 方法:
/// <summary>
/// 设置列的的新值为基础上增加,格式:Set(a => a.Clicks + 1) 相当于 clicks=clicks+1
/// <para></para>
/// 指定更新,格式:Set(a => new T { Clicks = a.Clicks + 1, Time = DateTime.Now }) 相当于 set clicks=clicks+1,time='2019-06-19....'
/// </summary>
/// <typeparam name="TMember"></typeparam>
/// <param name="exp"></param>
/// <returns></returns>
IUpdate<T1> Set<TMember>(Expression<Func<T1, TMember>> exp);
有时需要在 IInsertOrUpdate 中控制更新行为,例如一个阅读统计表,如果原始数据已经存在更新阅读量 +1。
再比如,在某些情况下,如果更新列赋值为空,保留数据库中的值。
Set((update, database) => update.Title ?? database.Title)
Set((_, database) => database.Reader++)
主要有些数据库不支持,所以蛋疼