Мне было интересно, какие были лучшие методы для создания запроса в sql с динамическим значением, скажем, у меня есть значение (nvarchar (max))
Значение: "912345678"
select * from AllData
where Number like '%912345678%'
значение: "Майкл"
select * from AllData
where Name like '%Michael%'
Значение: "Улица номер 10"
select * from AllData
where Address like '%Street number 10%'
Этот подход немного медленнее, так как поиск числа, имеющего 9 цифр, будет быстрее без%, как этот
select * from AllData
where Number like '912345678'
Я использую EDMX для подключения к внешней базе данных на С#, например:
var Result = EDMXEntity.Entities.Where(x =>
(SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Name.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Number.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Address.ToString().ToLower()) > 0)).Take(50).ToList();
Как повысить производительность?