Чтобы добавить ответ Нихилу, это возможно, и ресурсы, он приводит полезны, однако параметризация статья может быть немного вводит в заблуждение, я включу фрагмент кода, который я только что получил, работая в случае помогает. Вам не нужно использовать DECLARE @SSN ... в вашем sql, как в SSMS, удар работает просто отлично для меня, как только я исправил проблемы с типом (см. Параграф после блока кода).
string sql = "SELECT * from dob.ExampleTable WHERE IsActive = 1 SSN = @SSN";
var results = await this.DbConnection.QueryAsync(sql, new
{
SSN = 999999999
});
Также следите за несоответствующими типами данных. Мне не удалось заставить char или varchar работать в качестве целевого типа для моего столбца SSN с помощью Dapper (я смог использовать прямой ADO.NET, настраивая столбец явно как CHAR или VARCHAR, но Dapper, похоже, считает NVARCHAR (4000) для всей строки поля, что привело к ошибке с использованием Dapper). NVARCHAR и NCHAR отлично работали. Я думаю, что это связано с тем, что когда вы шифруете столбец, он меняет «реальный» тип данных на NCHAR (50) и что-то о преобразовании dapper из nvarchar (4000) => CHAR (9) => NCHAR (50) не работал, а только в Dapper.