Привет, я использую 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 ответ
Каким образом вы пытаетесь использовать переменную 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, и возвращает последовательность экземпляров этого класса данных.