LINQ to Entities选择具有表达式参数的列

时间:2017-05-29 12:00:33

标签: c# entity-framework linq-to-entities

我无法理解如何通过将表达式指定为参数来管理可查询中的列。

Method A(IQueryable<Order> query)

内部方法A我想指定要选择哪些列,所以我不会立即获取所有列,如下所示:

query.Select(x => new { x.OrderNumber, x.Payment, x.Customer })

如果我直接在方法A中指定它,这很容易,但我想使用参数传递信息。 我尝试使用这样的表达式:

Expression<Func<Order, dynamic>> columns

但是我无法让它工作,因为我只能指定一列,我称之为方法A,如下所示:

MethodA(query, (x) => x.OrderNumber);

如何指定多个属性?

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。 我只需要指定一个这样的匿名类型:

MethodA(query, order => new { order.OrderNumber, order.Payment })

现在我可以从其他方法传递我的Select表达式。

答案 1 :(得分:0)

如果您只想传递列名,为什么不将字符串作为数组传递?

void MethodA(params string[] columns)