public void Delete(Entity item, string whereClause = null, params object[] args) { //build where clause from metadata if (whereClause == null) { var dic = item.GetWhereClauseOnPrimaryKeyDbStyle(); var sqlTokens = new SqlTokens(dic); whereClause = sqlTokens.AsWhereClause(); args = dic.Values.ToArray(); } var sql = "delete from " + item.TableName + " " + whereClause; using (var connection = CreateOrReuseConnection()) { using (var command = CreateCommand(sql, connection.GetAdoConnection())) { AddParameters(command, args); command.ExecuteNonQuery(); } } }