Динамическое ядро ​​Linq

Привет, я использую Jqwidgets Grid для отображения моих данных. Он имеет встроенную возможность использовать фильтры, но если вы фильтруете свои записи на стороне сервера, вы должны создать свой собственный запрос. Поскольку я работаю с Linq, я подумал об использовании Dynamic Linq Library для сетевого ядра Asp. Проблема в том, что не так много примеров или объяснений, как это сделать. Но я занята уже несколько дней и не очень далеко. То, как я настроен; У меня есть нормальный запрос Linq:

 var Mut = from M in _DB.Mutations
                  join S in _DB.Shifts on M.ShiftId equals S.ShiftId
                  join U in _DB.RoosterUsers on M.UserId equals U.RoosterUserId
                  join D in deps on M.UserId equals D.UserId
                  join DD in _DB.Departements on D.DepartementID equals DD.DepartementId
                  select new MutationModel
                  {
                      MutId=M.MutationId,
                      Naam=U.FirstName + " " + U.LastName,
                      UserId=M.UserId,
                      Departement= DD.DepartementName,
                      MutationType = S.publicName,
                      MutationGroup = S.ShiftType.ToString(),
                      DateTot =M.DateTill,
                      TijdVan=M.DateStartOn,
                      TijdTot=M.DateTill,
                      Status=CreateStatus(M.Tentative, M.ApprovedOn, M.Processed, M.CancelRefId, M.Deleted)
                  };

Этот запрос выполняется нормально и дает мне все данные, которые мне нужны для Grid.

Затем для фильтра я хотел бы добавить динамический запрос Linq, используя библиотеку System.Linq.Dynamic.Core. Но до сих пор это работает:

var outQuery = Mut.Where("Status = @0 and UserId = @1", "Nieuw", "KLM22940").Select("Status");

Мои вопросы сейчас: 1. В предложении where Если я сделаю переменную fieldname, я получу ошибку. как это сделать ?? 2. Как добавить несколько столбцов в предложении Select? (на самом деле мне просто нравится выводить все столбцы.)

  1. Лучше всего было бы увидеть пример. кто-нибудь использовал Dynamic Linq для создания динамического запроса linq для сетки JQWidgets?

Большое спасибо.

Всего 1 ответ


Каким образом вы пытаетесь использовать переменную fieldname в предложении where?

Если вы хотите вывести все столбцы, вы можете использовать ToList () как

var outQuery = Mut.Where("Status = @0 and UserId = @1", "Nieuw", "KLM22940").ToList();

Если вы хотите получить некоторые конкретные столбцы, вы можете использовать предложение Select, как это

var outQuery = Mut.Where("Status = @0 and UserId = @1", "Nieuw", "KLM22940").Select("new(Status,UserId )");

Это предложение Select создает класс данных, который содержит свойства Status и UserId, и возвращает последовательность экземпляров этого класса данных.


Есть идеи?

10000