Я пытаюсь вернуть результат с помощью запроса 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!)