ExecutesQlCommand с SQLParameter не создает ожидаемый SQL [Duplicate]C#

Место общения программистов C#
Ответить
Anonymous
 ExecutesQlCommand с SQLParameter не создает ожидаемый SQL [Duplicate]

Сообщение Anonymous »

Это мой код C#: < /p>

Код: Выделить всё

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'
Так что мне интересно, почему он не заменяет/генерирует ожидаемый SQL.
Я ожидаю, что он заменит @country с данной страной, но она просто использует @country
Я просто изменил код, но я не могу изменить код. Имя столбца.

Подробнее здесь: https://stackoverflow.com/questions/797 ... pected-sql
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»