Эффективная функция поиска с Linq to SQL - PullRequest
0 голосов
/ 02 апреля 2009

Я использую VB.NET и Linq to SQL. У меня есть таблица с тысячами строк и растет. Прямо сейчас я использую .Contains () в предложении Where для выполнения запроса. Ниже моя функция поиска:

Public Shared Function DemoSearchFunction(ByVal keyword As String) As DataTable

    Dim db As New BibleDataClassesDataContext()
    Dim query = From b In db.khmer_books _
                From ch In db.khmer_chapters _
                From v In db.testing_khmers _
                Where v.t_v.Contains(keyword) And ch.kh_book_id = b.kh_b_id And v.t_chid = ch.kh_ch_id _
                Select b.kh_b_id, b.kh_b_title, ch.kh_ch_id, ch.kh_ch_number, v.t_id, v.t_vn, v.t_v


    Dim dtDataTableOne = New DataTable("dtOne")
    dtDataTableOne.Columns.Add("bid", GetType(Integer))
    dtDataTableOne.Columns.Add("btitle", GetType(String))
    dtDataTableOne.Columns.Add("chid", GetType(Integer))
    dtDataTableOne.Columns.Add("chn", GetType(Integer))
    dtDataTableOne.Columns.Add("vid", GetType(Integer))
    dtDataTableOne.Columns.Add("vn", GetType(Integer))
    dtDataTableOne.Columns.Add("verse", GetType(String))

    For Each r In query
        dtDataTableOne.Rows.Add(New Object() {r.kh_b_id, r.kh_b_title, r.kh_ch_id, r.kh_ch_number, r.t_id, r.t_vn, r.t_v})
    Next
    Return dtDataTableOne


End Function

Я хотел бы знать другие методы эффективного поиска с использованием Linq to SQL. Спасибо.

1 Ответ

0 голосов
/ 15 апреля 2010

Я бы посоветовал не использовать набор данных, а вместо этого - коллекцию строго типизированных объектов IEnumerable или IList. Кроме того, вы можете проверить эту тему для другого решения: Возможен ли расширенный поиск в Linq to SQL?

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