Выбор / фильтрация данных из LiteDB в Visual Basic .NET - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь получить данные из базы данных LiteDB NOSQL, но я пытаюсь получить правильный синтаксис в Visual Basic.

База данных создана правильно (проверено в LiteDBViewer), и я могу сосчитатьзначений в коллекции, но когда я пытаюсь сгенерировать запрос, используя collection.Find(), Intellisense добавляет query:=, а не Query.Operation, как указано в документации.

Try
    Using db As LiteDB.LiteDatabase = New LiteDB.LiteDatabase("Sig.db")
        Dim brands = db.GetCollection(Of Brand)("Brand")
        Dim brands_count As Integer = brands.Count()

        If brands_count > 0 Then
            'get Brands
             Dim brands_results = brands.Find(query:=("Name")) <-- Problem Row
             Dim brand_name As String

                    For Each result In brands_results
                        brand_name = result.Name.ToString
                        BrandGrid.Rows.Add(New String() {brand_name, True, True})
                    Next

            End If
        End Using

    Catch SQLex As LiteDB.LiteException
        MessageBox.Show(SQLex.Message, SQLex.ErrorCode.ToString, MessageBoxButtons.OK, MessageBoxIcon.Error)
    Catch ex As Exception
        MessageBox.Show(ex.Message, ex.InnerException.ToString, MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try

Я думаю, что я изо всех силс преобразованием кода C # в VB.net или отсутствием чего-то очевидного.

Все помощь или совет приветствуются.

1 Ответ

0 голосов
/ 11 января 2019

Обращаясь к разработчику через Twitter, он предложил использовать лямбда-выражения.

В результате значение выглядит следующим образом:

Dim brands_results = brands.Find(Function(x) x.Name.Equals(SelectedBrand))

(SelectedBrand будучи строковой переменной, объявленной ранее)

...