Код: Выделить всё
if (country != null)
{
Query += " AND Users.Country IN (N'";
for (int i = 0; i < country.Count; i++)
{
Query += i == 0 ? $"@country{i}'" : $", @country{i}";
}
Query += ")";
}
context.Database.ExecuteSqlCommand(Query, new SqlParameter($"@country0", "de"));
< /code>
Это SQL, который был произведен: < /p>
exec sp_executesql N'INSERT INTO [table] (table.column1, table.column2)
SELECT 5002, table.column
FROM table2
LEFT OUTER JOIN table3 ON table2.column = table3.column
WHERE 1 = 1
AND table3.Country IN (N''@country0'')', N'@country0 nvarchar(2)', @country0 = N'de'
< /code>
Если я изменяю SQL вручную на < /p>
exec sp_executesql N'INSERT INTO [table] (table.column1, table.column2)
SELECT 5002, table.column
FROM table2
LEFT OUTER JOIN table3 ON table2.column = table3.column
WHERE 1 = 1
AND table3.Country IN (N'de')', N'@country0 nvarchar(2)', @country0 = N'de'
Я ожидаю, что он заменит @country с данной страной, но она просто использует @country
Я просто изменил код, но я не могу изменить код. Имя столбца.
Подробнее здесь: https://stackoverflow.com/questions/797 ... pected-sql
Мобильная версия