У меня есть таблица со списком названий ресторанов и ссылками на другую таблицу с типом кухни.
Я хочу предоставить окно поиска на своей веб-странице, чтобы при вводе каждого слова в базе данных производился поиск и возвращались результаты. Я искал решение, которое не включает настройку полнотекстового поиска sql, поскольку я хочу иметь возможность проверить это с помощью Linq to SQL.
Из моего старого кода у меня есть функция, которая создает фильтр запросов по заданному тексту и возвращает все результаты, основанные на этом.
Private Function SetupQuery(ByVal searchText As String) As String
Dim searchFields As New List(Of String)
searchFields.Add("Name")
searchFields.Add("Postcode")
searchFields.Add("Cuisine")
Dim firstCol As Boolean = True
Dim a() As String
Dim j As Integer
a = searchText.Trim.Split(" ")
Dim filter As String = ""
Dim compareString As String
For Each col As String In searchFields
For j = 0 To a.GetUpperBound(0)
compareString = a(j).ToUpper()
compareString = compareString.Trim()
If firstCol Then
filter = filter & col & " LIKE '" & compareString & "%' "
firstCol = False
Else
filter = filter & " or " & col & " LIKE '" & compareString & "%' "
End If
Next
Next
Return filter
End Function
Это имеет жестко запрограммированные поля поиска, а затем циклически перебирает каждое и каждое слово в тексте поиска, чтобы создать фильтр OR LIKE.
Я уверен, что мог бы затем использовать это в своем коде LINQ, но это не кажется элегантным решением, особенно потому, что столбцы жестко запрограммированы и не используются так, как их использует LINQ.
Может ли кто-нибудь порекомендовать лучший способ сделать это или несколько советов в каком направлении идти с этим?
Спасибо