2012-09-13 22 views
6

Estoy tratando de devolver un objeto IQueryable en una de mis funciones y usando el mapeo (Automapper). Se las arreglan para devolver un objeto IEnumerable bien pero tan pronto como trato de devolver un objeto IQueryable que me tira un error:Uso de Automapper para devolver IQueryable

Este es el error:

Missing configuración del tipo de mapa o un mapeo no compatible.

tipos de mapeo: LLBLGenProQuery 1 -> CostCentre SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery 1 [[Mail.DAL.EntityClasses.TblCostCentreEntity, Mail.DAL, versión = 1.0.4638.16064, Culture = neutral, PublicKeyToken = null]] -> Mail.Model.CostCentre

ruta Destino: CostCentre

valor Fuente: SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery`1 [Mail.DAL.EntityClasses.TblCostCentreEntity]

Este es el código:

Dim metadatos Nueva LinqMetaData Dim q = p Desde En metaData.TblCostCentre _ Seleccionar p Mapper.CreateMap (De 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 
+0

Consulte [esta pregunta] (http://stackoverflow.com/questions/2212126/does-automapper-support-linq/12365931#12365931) para obtener la solución adecuada. – Alisson

Respuesta

3

Para que AutoMapper para llevar a cabo realmente el mapeo , tiene que ver cada elemento en IQueryable. Una vez que ha iterado sobre una consulta, ya no se puede consultar, ya que se ha consultado.

+0

tiene sentido. Gracias. – Baahubali

+0

Este enlace explica esto más a fondo (solo para usuarios de llblgen) - http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=17364 – Baahubali

+7

Incorrecto: ver http://stackoverflow.com/a/12365931/178620 para la solución. –

Cuestiones relacionadas