コード例 #1
0
        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));
        }