public override SqlProvider FormatUpdate <T>(T entity) { var update = ResolveExpression.ResolveUpdate <T>(a => entity); var where = ResolveExpression.ResolveWhere(entity); var whereSql = where.SqlCmd; Params = where.Param; Params.AddDynamicParams(update.Param); SqlString = $"UPDATE {FormatTableName(false)} {update.SqlCmd} {whereSql}"; return(this); }
public override SqlProvider FormatUpdate <T>(Expression <Func <T, T> > updateExpression) { var update = ResolveExpression.ResolveUpdate(updateExpression); var where = ResolveExpression.ResolveWhere(SetContext.WhereExpression); var whereSql = where.SqlCmd; Params = where.Param; Params.AddDynamicParams(update.Param); SqlString = $"UPDATE {FormatTableName(false)} {update.SqlCmd} {whereSql}"; return(this); }
public override SqlProvider FormatUpdateSelect <T>(Expression <Func <T, T> > updator) { var update = ResolveExpression.ResolveUpdate(updator); var selectSql = ResolveExpression.ResolveSelectOfUpdate(typeof(T).GetProperties(), SetContext.SelectExpression); var where = ResolveExpression.ResolveWhere(SetContext.WhereExpression); var whereSql = where.SqlCmd; Params = where.Param; Params.AddDynamicParams(update.Param); var topNum = SetContext.TopNum; var topSql = topNum.HasValue ? $" TOP ({topNum.Value})" : ""; SqlString = $"UPDATE {topSql} {FormatTableName(false)} WITH ( UPDLOCK, READPAST ) {update.SqlCmd} {selectSql} {whereSql}"; return(this); }