0
我有以下幾點:排序依據與匿名類型
Context context = new Context();
var persons = context.Persons.Select(x => new { Name = x.Name });
var mapper = OrderMapper.For(persons).Add("name", x => x.Name);
var result = persons.OrderByWithMapper(mapper);
其中:
- 人的類型是
IQueryable<anonymous>
- 映射器的類型爲
OrderMapper<anonymous>
的
OrderByWithMapper
的是以下幾點:
種public static IQueryable<T> OrderByWithMapper<T>(this IQueryable<T> source, OrderMapper<T> mapper) { // Method code }
OrderMapper
類如下:public class OrderMapper { public static OrderMapper<T> For<T>(IEnumerable<T> collection) { return new OrderMapper<T>(); } } public class OrderMapper<T> { }
但我在嘗試創建結果時出現錯誤:
'List<<anonymous type: string Name>>' does not contain a definition for 'OrderByWithMapper'
and the best extension method overload 'OrderByWithMapper<<anonymous type:
string Name>>(IQueryable<<anonymous type: string Name>>, OrderMapper<<anonymous type: string Name>>)'
requires a receiver of type 'IQueryable<<anonymous type: string Name>>'
我不知道什麼是錯的作爲排序依據方法在EntityFramework中可以匿名使用,例如:
public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
我應該在OrderByWithMapper方法中更改哪些內容以使其適用於匿名類型?
當然!我在第一個查詢結束時錯過了ToList(),它將它變成了一個列表 ... –