2012-08-09 163 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

相關問題