【发布时间】:2011-09-13 05:39:29
【问题描述】:
我正在使用一种方法 Rank 来使用一些自定义逻辑来获取产品的排名,如下所示:
product.Rank(p=>p.Price);
public class Product
{
public double Price {get;}
public int Rank(Func<Product, double> compfunc)
{
...
}
}
我想在使用扩展库System.Linq.Dynamic.DynamicQueryable的where子句中使用此方法
例如:
products.Where("Rank(p=>p.Price) == 0")
虽然上面的行不通。 这样的函数可以传吗?
【问题讨论】:
-
您也许可以为 IQueryable 创建一个扩展方法,该方法接受 lambda 并在内部调用 Rank 和 Where...
-
为什么要在这样的查询中使用字符串?
-
我正在尝试为用户构建一个自定义表达式构建器,因此可以从一组预定义的属性构建一些条件/标准。使用字符串在内部构建表达式对我来说似乎是一个不错的选择。
标签: c# linq dynamic iqueryable