/// <summary> /// 更新实例。 /// </summary> /// <param name="entityType">模型实例。</param> /// <param name="expression">条件表达式。</param> /// <param name="parameters">匿名对象。</param> /// <returns>返回SQL构建实例。</returns> public virtual SqlIndentedStringBuilder Update(IEntityType entityType, Expression expression, object parameters) { var builder = new SqlIndentedStringBuilder(); builder.Append("UPDATE ").Append(SqlHelper.DelimitIdentifier(entityType.Table)).Append(" SET "); builder.CreateObjectParameters(parameters); builder.JoinAppend(builder.Parameters.Keys.Select( name => $"{SqlHelper.DelimitIdentifier(name)}={SqlHelper.Parameterized(name)}")); builder.AppendEx(Visit(expression), " WHERE {0}").Append(SqlHelper.StatementTerminator); return(builder); }
/// <summary> /// 通过唯一主键更新实例。 /// </summary> /// <param name="entityType">模型实例。</param> /// <param name="parameters">匿名对象。</param> /// <returns>返回SQL构建实例。</returns> public virtual SqlIndentedStringBuilder Update(IEntityType entityType, object parameters) { var builder = new SqlIndentedStringBuilder(); builder.Append("UPDATE ").Append(SqlHelper.DelimitIdentifier(entityType.Table)).Append(" SET "); builder.CreateObjectParameters(parameters); builder.JoinAppend(builder.Parameters.Keys.Select( name => $"{SqlHelper.DelimitIdentifier(name)}={SqlHelper.Parameterized(name)}")); AppendWherePrimaryKey(builder, entityType); return(builder); }