2012-09-13 4 views
6

私の関数の1つでIQueryableオブジェクトを返し、マッピング(Automapper)を使用しようとしています。Automapperを使用してIQueryableを返す

これはエラーです:型マップの設定またはサポートされていないマッピングがありません

それはすぐに私はそれは私にエラーをスローしたIQueryableオブジェクトを返すようにしようとしてIEnumerableをオブジェクトの罰金を返したがために管理します。

マッピングタイプ: LLBLGenProQuery 1 -> CostCentre SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery 1 [[Mail.DAL.EntityClasses.TblCostCentreEntity、Mail.DAL、バージョン= 1.0.4638.16064、カルチャニュートラル、PublicKeyToken = = null]] - > Mail.Model.CostCentre

宛先パス: CostCentre

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

これはコードである:

薄暗いのmetaData新規LinqMetaDataとして 薄暗いQ = metaData.TblCostCentreのp _ セレクトP(TblCostCentreEntityうち、CostCentre) Mapper.CreateMap()

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 
+0

適切な解決策については、[この質問](http://stackoverflow.com/questions/2212126/does-automapper-support-linq/12365931#12365931)を参照してください。 – Alisson

答えて

3

Automapperが実際にマッピングを実行するためにはよりIQueryableの各要素を参照する必要があります。クエリー可能なものを反復すると、既にクエリー可能なのでクエリーは実行できません。

+0

意味があります。ありがとうございました。 – Baahubali

+0

このリンクはこれをさらに説明しています(llblgenユーザのみ) - http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=17364 – Baahubali

+7

不正:http://stackoverflow.com/a/12365931/178620を参照してください。ソリューションのために。 –

関連する問題