【发布时间】:2014-03-12 08:45:04
【问题描述】:
我创建了以下扩展。
代码
public static class QueryableExtensions
{
public static QueryMapper<TSource> Map<TSource>(this IQueryable<TSource> source)
{
return new QueryMapper<TSource>(source);
}
public static ObjectMapper<TSource> Map<TSource>(this TSource obj)
{
return new ObjectMapper<TSource>(obj);
}
}
我怎么称呼上面的
return this.repository.FindAll()
.OrderBy(o => o.Name)
.Map().To<TEntityDto>();
错误
无法将类型“TEntityDto”隐式转换为 'System.Collections.Generic.IEnumerable'。显式 存在转换(您是否缺少演员表?)
我最初的解决方案是将 IQueryable 作为输入的方法重命名为“MapQuery”...
但我希望在对象或集合上调用它时使用相同的命名约定。我不确定如何添加约束(或其他东西)来限制调用/源对象的外观。 (EG.单个类/类的集合)
【问题讨论】:
标签: c# generics extension-methods