Итак, я подумал о создании динамического SQL-вопроса, то есть я хочу, чтобы количество параметров было динамическим.
Посмотрев на это: Параметризация предложения SQL IN Я думал, что использование слов "% x%" - МЕДЛЕННО и не хорошо.
Что я на самом деле хотел бы сделать, так это использовать ключевое слово IN и сделать его примерно таким:
выберите UserId из NameTable, где Name IN (@List_of_names)
Где @List_of_names может содержать, например,
- Филип Экберг
- Filip
- Экберг Филип
- Экберг
- Йохан Экберг
- Юхан
(мое второе имя - Йохан, вот почему он там))
Так что все это должно совпадать с Йоханом Филипом Экбергом.
Я хочу использовать LINQ to SQL или LINQ to SQL (хранимая процедура) с использованием C #.
Предложения и мысли, пожалуйста!
----------------- Очистка сценария и таблиц -------------------------
Представьте, что у меня есть следующее: таблица с пользователями, таблица с именами и таблица, которая связывает имена с определенным пользователем.
Итак, имея
[User Table]
User ID Full Name
1 Johan Filip Ekberg
2 Anders Ekberg
[Names]
Name ID Name
1 Filip
2 Ekberg
3 Johan
4 Anders
[Connect Names]
Name ID User ID
1 1
2 1
3 1
2 4
2 2
Так что, если я хочу искать: Экберг
Возвращение должно быть:
- Йохан Филип Экберг
- Андерс Экберг
Если я хочу найти Йохана Экберга
Если я хочу найти Андерса
Количество «поисковых имен» может быть бесконечным, если у меня есть имя: Johan Anders Carl Filip Ekberg (это всего лишь 1 человек со многими именами), и я просто передаю «Carl Filip», я хочу найти это Пользователь.
Делает ли это все яснее?