0

次のネストされたビューモデルがあります。

Public Class ContentViewModel
    Public Property CONTENTID As Integer
    Public Property IMAGETOCONTENT() As IEnumerable(Of ImageToContentViewModel)
End Class

Public Class ImageToContentViewModel
    Public Property IMAGETOCONTENTID As Integer
    Public Property IMAGE As ImageViewModel
End Class

Public Class ImageViewModel
    Public Property IMAGEID As Integer
    Public Property TITLE As String
End Class

ネストされたビューモデルをクエリしようとしています:

Function Test() As ContentViewModel
    Dim dataObject = (From a In db.CMS_CONTENT.OfType(Of CMS_EVENT)()
                 Where a.CONTENTID = contentId AndAlso a.DELETED = 0
                 Select New ContentViewModel With {
                     .CONTENTID = a.CONTENTID,                        
                     .IMAGETOCONTENT = (From b In db.CMS_IMAGES_TO_CONTENT
                      Where b.CONTENTID = a.CONTENTID
                      Select New ImageToContentViewModel With {
                          .IMAGETOCONTENTID = b.IMAGETOCONTENTID,
                          .IMAGE = (From c In db.CMS_IMAGES
                                    Where c.IMAGEID = b.IMAGEID And c.DELETED = False
                                    Select New ImageViewModel With {
                                        .IMAGEID = c.IMAGEID,
                                        .TITLE = c.TITLE
                                    })
                      })
                 })

    Return dataObject 
End Function

私の問題は、常にエラーが発生するため、入力されたビューモデルを返すことができないことです:

タイプ "System.Data.Objects.ObjectQuery`1[MvcApp.ContentViewModel]" のオブジェクトを "MvcApp.ContentViewModel" に変換できません

4

1 に答える 1

0

関数本体はIQueryableof ContentViewModel( として実装) を作成します。それが が返すSystem.Data.Objects.ObjectQuery`1[MvcApp.ContentViewModel]ものだからです。Select

を使用するかFirstOrDefault()、戻り値の型をIQueryable(of ContentViewModel) に変更する必要があります。

于 2013-02-11T14:15:27.163 に答える