Как мне сгенерировать SqlCommand для списка параметров?
Как правильно использовать один и тот же параметр с новым предложением OR?
public class InputList
{
public string col1 { get; set; }
public string col2 { get; set; }
}
public void Exec(IList<InputList> list)
{
try
{
using (var conn = new SqlConnection(Settings.Default.DBConnStr))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandType = CommandType.Text;
// want to use SqlParameter to prevent sql injection
var clause = list
.Select(x => $"(col1 = {x.col1} AND col2 = {x.col2}) OR ")
.Aggregate((curr, next) => curr + " " + next);
// TODO: remove trainling OR
cmd.CommandText =
$@"SELECT *
FROM T
WHERE {clause}";
// TODO: execute reader
}
}
catch()
}
Мне нужно перебрать список объектов для компиляции предложения WHERE
SELECT *
FROM T
WHERE
(col1 = @col1 AND col2 = @col2) OR
(col1 = @col1 AND col2 = @col2) OR
...
(col1 = @col1 AND col2 = @col2)