如何在带有动态linq的orderby子句中使用automapper?

时间:2013-04-05 14:32:42

标签: c# linq dynamic sql-order-by automapper

我正在使用orderProperties变量作为动态linq,我需要在OrderBy子句中使用AutoMapper。我需要将Resource类中的“MyColumn”属性映射到ResourceViewModel类的其他属性。 Query()返回Resource的IQuerable。例如,我在Resouce类MyColumn属性中,我需要将它映射到MyOtherColumn,它位于ResourceViewModel中。 任何想法如何做到这一点?

string orderProperties = "MyColumn Ascending";

var orderList = _resourceRepository.Query()
                                   .OrderBy(orderProperties)
                                   .Select(Mapper.Map<Resource, ResourceViewModel>);

1 个答案:

答案 0 :(得分:1)

我会尝试另一种方法:

  • 将查询结果存储在变量
  • 然后使用automapper转换结果集。

排序应完全独立于automapper。 Autommapper仅“翻译”这些内容。

类似的东西:

string orderProperties = "MyColumn Ascending";

var orderList = _resourceRepository.Query()
                                   .OrderBy(orderProperties)
                                   .ToList();
Mapper.CreateMap<IList<Resource>, IList<ResourceViewModel>>();
var results = Mapper.Map<IList<Resource>>(orderList);

HTH