Динамически конструировать предложение Select запроса Linq - PullRequest
1 голос
/ 07 июня 2011

Я использую LINQ to Entities, и у меня есть пара запросов, для которых я хочу иметь возможность указать предложение Select во время выполнения.

Я подумал, что мне придется сделать это, построив выражение и добавив его в IQueryable, но я не уверен, как это сделать. Кто-нибудь может дать мне подсказку?

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Я не уверен, что вы могли бы делать то, что вы хотите с выражениями. Предложение select указывает тип объекта в коллекции IQueryable, который должен быть определен во время компиляции. Существует нечто, называемое Dynamic Linq , которое может делать то, что вы хотите.

0 голосов
/ 07 июня 2011

Примерно так:

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