Dynami c Linq core - PullRequest
       19

Dynami c Linq core

0 голосов
/ 16 января 2020

Привет! Я использую Jqwidgets Grid для отображения моих данных. Он имеет встроенную возможность использовать фильтры, но если вы фильтруете свои записи на стороне сервера, вы должны создать свой собственный запрос. Поскольку я работаю с Linq, я подумал использовать Dynami c Linq Library для Asp net core. Проблема в том, что не так много примеров или объяснений, как это сделать. Но я занята уже несколько дней и не очень далеко. То, как я настроен; У меня есть обычный запрос 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.

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

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

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

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

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

1 Ответ

0 голосов
/ 16 января 2020

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

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

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

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

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

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

...