嗨,我正在使用Jqwidgets网格显示我的数据。它有可能使用过滤器,但是如果您在服务器端过滤记录,则必须建立自己的查询。在使用Linq的过程中,我想到了将动态Linq库用于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)
};
此查询运行正常,并为我提供了网格所需的所有数据。
然后是过滤器,我想使用System.Linq.Dynamic.Core库添加动态Linq查询 但这是到目前为止我能正常工作的地方:
var outQuery = Mut.Where("Status = @0 and UserId = @1", "Nieuw", "KLM22940").Select("Status");
我现在的问题: 1.在where子句中如果我使fieldname变量,我将得到一个错误。这该怎么做?? 2.在“选择子句”中,如何添加多个列? (实际上我只想输出所有列。)
非常感谢您。
答案 0 :(得分:0)
您试图通过哪种方式在where子句中使用fieldname变量?
如果要输出所有列,可以使用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属性的数据类,并返回该数据类的实例序列。