我希望可以通过字符串参数生成表达式,类似下面的代码:
但是它无法编译!我将T更改为object。
private Expression<Func<Task, T>> Generate(string orderby)
{
switch (orderby)
{
case "Time":
return t => t.Time;
case "Money":
return t => t.RewardMoney;
default:
return t => t.Id;
}
}
然后调用它:
_context.Items.OrderBy(Generate("Money"));
但是它无法编译!我将T更改为object。
private Expression<Func<Task, object>> Generate(string orderby)
然后它可以编译,但是它不能正常工作。
System.NotSupportedException: 无法将类型 'System.Int32' 强制转换为类型 'System.Object'。LINQ to Entities 仅支持将 EDM 基元类型或枚举类型强制转换。