相关疑难解决方法(0)

C# - 使用属性名称作为字符串由属性排序的代码

当我将属性名称作为字符串时,对C#中的属性进行编码的最简单方法是什么?例如,我想允许用户通过他们选择的属性(使用LINQ)来订购一些搜索结果.他们将在UI中选择"order by"属性 - 当然是字符串值.有没有办法直接使用该字符串作为linq查询的属性,而不必使用条件逻辑(if/else,switch)将字符串映射到属性.反射?

从逻辑上讲,这就是我想做的事情:

query = query.OrderBy(x => x."ProductId");
Run Code Online (Sandbox Code Playgroud)

更新:我最初没有指定我正在使用Linq to Entities - 看起来反射(至少GetProperty,GetValue方法)不会转换为L2E.

.net c# linq linq-to-entities

72
推荐指数
6
解决办法
4万
查看次数

标签 统计

.net ×1

c# ×1

linq ×1

linq-to-entities ×1