Передать значение в sql BulkDelete - PullRequest
0 голосов
/ 20 марта 2019
        using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
    {
        var sql = "Select * FROM CUSTOMERS WHERE CustomerID in @abc";
        var affectedRows = connection.Execute(sql, new { abc = 53 });
        connection.BulkDelete(connection.Query<Customer>(sql).ToList());
    }   

Код выше не может работать.Вместо прямой передачи значения внутри запроса " connection.BulkDelete (connection.Query (" Выбрать * ИЗ КЛИЕНТОВ, ГДЕ CustomerID в (53) ") .ToList ()); ", есть ли какой-либо метод дляпередать гибкое значение в BulkDelete?Спасибо

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Я не знаю, как BulkDelete работает; никогда не использовал это. Но я думаю, что в вашем запросе есть синтаксическая ошибка. Входные данные для предложения IN должны быть включены в круглые скобки, как показано ниже:

var sql = "Select * FROM CUSTOMERS WHERE CustomerID in (@abc)";

Обратите внимание на круглые скобки выше.

connection.BulkDelete(connection.Query("Select * FROM CUSTOMERS WHERE CustomerID in (53)").ToList());

Вы можете видеть, что вы включаете параметры в круглые скобки здесь.

0 голосов
/ 20 марта 2019

Вы не используете пострадавшие строки:

using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{
    var sql = "Select * FROM CUSTOMERS WHERE CustomerID in @abc";
    var affectedRows = connection.Execute<Customer>(sql, new { abc = 53 });
    connection.BulkDelete(affectedRows.ToList());
}  
...