У меня есть куча классов POCO, позволяет сказать, что один из них выглядит, как показано нижеC# Lambda с Generic класса Т
class Person{
public string Name {get;set;}
public int Age {get;set;}
}
вот мой общий класс,
class Helper<T> where T:class{
public Func<IQueryable<T>, IOrderedQueryable<T>> GenerateOrderByExpression(string colName)
{
return x => x.OrderByDescending(y => y.colName);
//colName = NAME can be here for class person, it can be the Age field or something else for some other classes
//how do i become generic here, how can I be able to use which ever field i pass as colName
}
}
Вам нужно будет использовать отражение и создать «выражение» для использования в вашем «OrderByDescending». Но какую проблему вы решаете, делая это? Вероятно, есть лучшая альтернатива. – juharr
вы должны изучить динамический linq - он делает именно это. –
@juharr: «LINQ to Entities не распознает метод« System.Reflection.PropertyInfo GetProperty (System.String) », и этот метод не может быть переведен в выражение хранилища». – ishahrier