2012-08-09 117 views
3

我试图映射IQueryable <实体>到IQueryable < entityDTO>使用Automapper生成Linq。我正在开发一个带有实体框架和oracle 11g的Web API项目。IQueryable <Entity>在LINQ与嵌套对象IQueryable <DTO>

public virtual IQueryable<TDto> Get() 
{ 
IQueryable<TEntity> EntObjs; 
EntObjs = GenericService.Get();  
var Dtos = EntObjs.Project().To<TDto>(); 
return Dtos; 
} 

只要Tentity类型没有任何集合,它就可以正常工作。我在http://www.devtrends.co.uk/blog/stop-using-automapper-in-your-data-access-code找到了解决问题的途径。我知道我可以使用后续函数将映射集合映射到Automapper,但我需要它在linq中,所以我不会打破Iquerable链。

Mapper.Map<TSource, TDestination>(Source,Destincation); 

回答

0

您可以在查询链中使用它。

例如:

EntObjs.Project(). Select(x=> Mapper.Map(x))... 

+0

是否Mapper.Map打破IQueryable的链条?由于使用Odata过滤器,我无法打破这个链条。 – 2012-08-09 15:26:52

+0

对不起,可能。试试看,让我知道。 – Aliostad 2012-08-09 15:28:21

相关问题