FreeSql icon indicating copy to clipboard operation
FreeSql copied to clipboard

希望 `IInsertOrUpdate` 对象能够添加一个 `Set` 方法

Open hd2y opened this issue 4 years ago • 1 comments

就像 IUpdate 对象的 Set 方法:

    /// <summary>
    /// 设置列的的新值为基础上增加,格式:Set(a =&gt; a.Clicks + 1) 相当于 clicks=clicks+1
    /// <para></para>
    /// 指定更新,格式:Set(a =&gt; 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++)

hd2y avatar May 27 '21 09:05 hd2y

主要有些数据库不支持,所以蛋疼

2881099 avatar May 28 '21 10:05 2881099