public virtual void RemoveWhere <T>(params FilterCondition[] filters) { StringBuilder rawSql = new StringBuilder($"DELETE FROM {GetTableName<T>()} WHERE "); List <object> inputs = new List <object>(); int interiorInputsIndex = 0; for (int i = 0; i < filters.Length; i++) { string[] parametersPositions = new string[filters[i].Inputs.Length]; for (int j = 0; j < filters[i].Inputs.Length; j++) { inputs.Add(filters[i].Inputs[j]); parametersPositions[j] = "{" + interiorInputsIndex + "}"; interiorInputsIndex++; } rawSql.Append(string.Format(filters[i].Condition, parametersPositions)); } _context.AddCommand(async() => await _context.Database.ExecuteSqlRawAsync(rawSql.ToString(), inputs)); }