动态构造Linq查询的Select子句

本文关键字:Select 子句 查询 Linq 动态 | 更新日期: 2023-09-27 17:58:46

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

我想我必须通过构建一个表达式并将其添加到IQueryable中来完成,但我不确定如何做到这一点。有人能给我一个提示吗?

动态构造Linq查询的Select子句

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

类似这样的东西:

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();