Запрос LiteDB через свойство List (Of T) - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь вернуть результат с помощью запроса LiteDB в поле, List(Of T). Мои два класса POCO:

Public Class mPage

    ' IDs
    <Id(1, 1), Category("IDs"), [ReadOnly](True)>
    Public Property ID As ObjectId = ObjectId.NewObjectId

    'ELEMENTS
    <Id(1, 15), Category("Elements"), DisplayName("Static Images"), Description("Any static images on the page.")>
    <BsonRef("mStaticImages")>
    Public Property StaticImages As New List(Of mStaticImage)

End Class

Public Class mStaticImage

    ' IDs
    <Id(1, 1), Category("IDs"), [ReadOnly](True)>
    Public Property ID As ObjectId = ObjectId.NewObjectId

    'GENERAL
    <Id(1, 10), Category("General"), DisplayName("Name"), Description("Name")>
    Public Property Name As String = ""

End Class

Это работает ("Bin go" ловит нужную mPage). Предположим, tsi возвращает mStaticImage, и он находится в одном списке mPage:

Dim tsi As mStaticImage = db.Collections.mStaticImages.FindById(s.ID)
For Each p As mPage In db.Collections.mPages.Include(Function(x) x.StaticImages).FindAll
    For Each si As mStaticImage In p.StaticImages
        If si.ID = tsi.ID Then
            Debug.WriteLine("Bingo")
        End If
    Next
Next

Но это не так (возвращает Nothing):

Dim tsi As mStaticImage = db.Collections.mStaticImages.FindById(s.ID)
Dim mps As mPage
mps = db.Collections.mPages.Include(Function(x) x.StaticImages).
    Find(Function(x) x.StaticImages.Contains(tsi)).FirstOrDefault

Любые идеи (извинения за VB. net!)

...