动态构造Linq查询的Select子句

时间:2011-06-07 13:02:40

标签: c# select linq-to-entities expression-trees

我正在使用LINQ to Entities,我有几个查询,我希望能够在运行时指定Select子句。

我想我必须通过构建Expression并将其添加到IQueryable来实现,但我不知道该怎么做。任何人都可以给我一个暗示吗?

2 个答案:

答案 0 :(得分:1)

我不确定你能用表达式做你想做的事。 select子句指定IQueryable集合中对象的类型,必须在编译时定义。有一种叫Dynamic Linq的东西可以做你想要的。

答案 1 :(得分:0)

这样的事情:

IQueryable<cerberus_Ticket> matches = db.cerberus_Tickets;


 if (this.AgentIdField.Text.Trim().Length > 0)
 {
     matches = matches.Where(a => a.AgentId == criteria.AgentId);
 }

  if (this.TicketIdField.Text.Trim().Length > 0)
 {
     matches = matches.Where(a => a.TicketId.Contains(criteria.TicketId));
 } 

var output = matches.ToList();