Я использую c # + EF6, столкнувшись с проблемой при попытке параметризации команды SQL.В редких случаях мне приходится использовать Context.Database.ExecuteSqlCommand (sqltext).
Проблема заключается в следующем:
выполняемый запрос использует ключевое слово IN, например
DELETE FROM MyTable WHERE ID in (@ids)
@ ids - это список целых чисел - если есть единственное целое число, то запрос выполняется нормально из-за неявного преобразования:
exec sp_executesql N'DELETE FROM MyTable WHERE ID IN (@ids)',N'@ids nvarchar(7)',@ids=N'1'
, но когда есть список элементов, он завершится с ошибкойошибка преобразования
exec sp_executesql N'DELETE FROM MyTable WHERE ID IN (@ids)',N'@ids nvarchar(7)',@ids=N'1,2'
Conversion failed when converting the nvarchar value '1,2' to data type int.
Как мне структурировать параметр или sq для работы с использованием параметров sql?
заранее спасибо ...