Building an OrderBy Lambda expression based on child entity's property

后端 未结 5 1750
渐次进展
渐次进展 2020-12-10 04:34

I\'m trying to generate a LINQ OrderBy clause using lambda expressions with an input of the column name of an entity as a string (in the \"sortOn\" variable bel

5条回答
  •  北荒
    北荒 (楼主)
    2020-12-10 04:43

    This will generate proper lambda expression:

    var sortOn = "Category.Description";
    var param = Expression.Parameter(typeof(Product), "p");
    var parts = sortOn.Split('.');
    
    Expression parent = param;
    
    foreach (var part in parts)
    {
        parent = Expression.Property(parent, part);
    }
    
    var sortExpression = Expression.Lambda>(parent, param);
    

提交回复
热议问题