EF Core 2.1 выдает предупреждения о внедрении SQL. Вот мой фрагмент кода, где это происходит
var query = await _ctx.Set<TABLE>()
.FromSql("Select * from TABLE where Artikelnummer IN (" + string.Join(',', artNum) + ")")
.AsNoTracking()
.Select(z => new
{
z.Artikelnummer,
z.Property
}).ToArrayAsync();
, где artNum
(обозначает числа Артикеля) - это массив целых чисел, например, [1,22,34 и т. Д.].
Я не могу передать artNum
в качестве параметров в FromSql, потому что будет одинарные кавычки и SQL выдает исключение.
Я могу переписать FromSql на
.Where(x => artNum.Contains(x.Artikelnummer))
Но у меня есть запросы, которые намного больше и сложнее, чем этот, поэтому LINQ to Entities не годится в этой ситуации.
Так должно быть, вопрос в том, как переписать этот запрос, чтобы предупреждение не появлялось?
LINQ to Entities выполняется намного дольше, чем LINQ to SQL , поэтому это не подходящий способ решения моей проблемы.
Я исследовал, что конкатенация вызывает предупреждения, поэтому должно быть решение без конкатенации.