Как выполнить динамическое выделение в Linq? - PullRequest
2 голосов
/ 19 мая 2010

Я пытаюсь выяснить, как динамически указывать свойства для моего предложения select в запросе linq.

Допустим, у меня есть коллекция объектов сотрудников. Во время выполнения конечный пользователь будет указывать, какие свойства он хотел бы видеть для этих сотрудников, поэтому мне нужно иметь возможность динамически создавать мое предложение выбора Linq.

Я использовал динамическую библиотеку Linq, но я предпочитаю не использовать ее, потому что она требует от меня построения строки для передачи методу select. Я хотел бы понять, как это сделать с помощью выражений.

Ответы [ 2 ]

0 голосов
/ 18 марта 2013

Используйте Reflection, чтобы получить динамические значения столбца

// переменная столбцов имеет имя столбца в виде строки через запятую, которую вы можно сохранить в БД // пример строки columns = "Name, Id, Age";

   var strColumns =columns.split(,);
    foreach(var myObject in MyObjectcollection)
   {
    for(int index =0;index<strColumns.count();index++)
    {
    //Create a collection of objects 
    mycollection.add(myObject.GetType().GetProperty(strColumns[index]).GetValue(myObject, null));
    }
  }
0 голосов
/ 19 мая 2010

Это выглядит как то, что больше соответствует вашим требованиям не использовать динамический linq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...