【发布时间】:2012-06-18 18:44:08
【问题描述】:
我有几个实现公共存储库接口的类,这些类中的一个方法是返回分页结果并接受一个
Expression<Func<T, bool>> OrderBy
我还创建了一个将使用存储库类的服务层,因为我已经阅读过将表达式对象从 UI 发送到服务层不是首选,所以我决定将其作为参数发送,如果我将其发送为包含参数名称的字符串我如何将字符串转换为要在表达式对象中使用的属性,例如假设我有一个名为 User 的实体并且我向方法发送一个名为“UserName”的参数,如何我可以将“UserName”转换为可以在 Expression> OrderBy 对象中使用的“UserName”属性吗?
如果可能的话,你能告诉我一个更合适的排序方式吗?
【问题讨论】:
-
我看不出有什么理由不使用这个表达式。
-
您提供的接口更多地用于 Where 子句,而不是用于排序。排序表达式应该是这样的: Expression
> keySelector, bool asc ... -
我已经记住了 bool asc,orderby 参数 (KeySelection) 是用于排序的参数,我目前正在尝试使用表达式类从字符串 1 构建 orderby 参数。
-
Dynamic Linq 库已经做到了“从字符串构建 orderby”。来源也可用。
标签: c# entity-framework repository service-layer