Как построить динамический параметризованный запрос, используя dapper?
У меня есть столбцы и их значения в KeyValuePair
например,
Key | Value
------| -------
FName | Mohan
LName | O'reily
Gender| Male
Я хочу построить динамический оператор SQL, используяdapper и выполнить его,
string statement = "SELECT * FROM Employee WHERE 1 = 1 ";
List<KeyValuePair<string,string>> lst = new List<KeyValuePair<string,string>>();
lst.Add(new KeyValuePair<string,String>("FName","Kim"));
lst.Add(new KeyValuePair<string,String>("LName","O'reily"));
lst.Add(new KeyValuePair<string,String>("Gender","Male"));
foreach(var kvp in lst)
{
statement += " AND "+ kvp.Key +" = '"+ kvp.Value +"'";
}
using (var connection = _dataAccessHelper.GetOpenConnection())
{
try
{
//CommandDefinition cmd = new CommandDefinition(statement);
var searchResult = await connection.QueryAsync<dynamic>(statement);
Выше запроса не удается, потому что в запросе есть специальный символ.Я обнаружил, что для параметризованных операторов можно использовать CommandDefinition
,Как использовать CommandDefinition
для выполнения вышеуказанного оператора без каких-либо ошибок?или жеЕсть ли лучший способ построить динамические операторы SQL?