/// <summary> /// Execute a query to update only some fields of the give object in database using the <see cref="PrimaryKeyAttribute"/> to identify the record /// </summary> /// <param name="model">The object to update</param> /// <param name="onlyFields">Specify the fields that need to be updated</param> /// <typeparam name="T"></typeparam> /// <typeparam name="TKey"></typeparam> /// <returns></returns> public async Task <int> UpdateAsync <T, TKey>(T model, Expression <Func <T, TKey> > onlyFields) { var s = new TypedUpdateStatement <T>(DialectProvider); s.ValuesOnly(model, onlyFields); var cmd = DialectProvider.ToUpdateStatement(s.Statement, CommandFlags.None); return(await this.ExecuteScalarAsync <int>(cmd)); }
/// <summary> /// Execute a query to update the give object in database using the <see cref="PrimaryKeyAttribute"/> to identify the record /// </summary> /// <param name="model">the object to update</param> /// <typeparam name="T"></typeparam> /// <returns></returns> public Task <int> UpdateAsync <T>(T model) { var s = new TypedUpdateStatement <T>(DialectProvider); s.ValuesOnly(model); var cmd = DialectProvider.ToUpdateStatement(s.Statement, CommandFlags.None); return(this.ExecuteScalarAsync <int>(cmd)); }
public async Task <int> UpdateAllAsync <T, TKey>(object obj, Expression <Func <T, TKey> > onlyField, Expression <Func <T, bool> > where = null) { var s = new TypedUpdateStatement <T>(DialectProvider); if (where != null) { s.Where(where); } s.Values(obj, onlyField); var cmd = DialectProvider.ToUpdateStatement(s.Statement, CommandFlags.None); return(await this.ExecuteScalarAsync <int>(cmd)); }