EF Core от Sql с предложением IN - PullRequest
0 голосов
/ 15 февраля 2020

Как передать динамический c список int в метод From Sql? я попробовал следующий код, но он не работает.

Преобразование не удалось при преобразовании значения nvarchar '1,2,3' в тип данных int.

var result = dataContext.Customers.FromSql($"SELECT * FROM Customer WHERE Id IN ({string.Join(",", listOfInt)})")

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Вы можете попробовать этот способ

var Ids = string.Join(',', listOfInt.Select(n => n.ToString()).ToArray());

var result = dataContext.Customers.FromSql($"SELECT * FROM Customer WHERE Id IN ({Ids})")
0 голосов
/ 15 февраля 2020

Это работает для меня:

var result = dataContext.Customers.FromSql(string.Format("SELECT * FROM Customer WHERE Id IN ({0})", string.Join(",", listOfInt)));

Он действительно жалуется на уязвимость, связанную с инъекцией, но легко очищает хотя бы список int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...