10

関数の 1 つで IQueryable オブジェクトを返そうとしていますが、マッピング (Automapper) を使用しています。IEnumerable オブジェクトを正常に返すことができましたが、IQueryable オブジェクトを返そうとするとすぐにエラーがスローされます。

これはエラーです:

タイプ マップ構成が欠落しているか、サポートされていないマッピングです。

マッピング タイプ: LLBLGenProQuery 1 -> CostCentre SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery1[[Mail.DAL.EntityClasses.TblCostCentreEntity, Mail.DAL, Version=1.0.4638.16064, Culture=neutral, PublicKeyToken=null]] -> Mail.Model.CostCentre

宛先パス: CostCentre

ソース値: SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery`1[Mail.DAL.EntityClasses.TblCostCentreEntity]

これはコードです:

Dim metaData As New LinqMetaData Dim q = From p In metaData.TblCostCentre _ Select p Mapper.CreateMap(Of TblCostCentreEntity, CostCentre)()

    Dim t As IEnumerable(Of CostCentre) = Mapper.Map(Of CostCentre)(q)
    'Select New CostCentre With {.Active = p.Active, .CostCentre = p.CostCentre, .CreatedBy = p.CreatedBy, .DateCreated = p.DateCreated, .DateLastModified = p.DateLastModified, .ModifiedBy = p.ModifiedBy, .CostCentreID = p.CostCentreId}

    Return t
4

2 に答える 2

3

Automapper が実際にマッピングを実行するには、IQueryable 内の各要素を確認する必要があります。クエリ可能なものを反復処理すると、既にクエリされているため、クエリ可能ではなくなります。

于 2012-09-13T01:45:24.217 に答える