jtable jquery排序和linq到sql

本文关键字:sql linq jquery 排序 jtable | 更新日期: 2023-09-27 18:14:35

编辑/解决方案
我所做的,我不认为是优雅的,是两个折叠:
1.使用内联sql查询对数据集进行排序
2.使用Linq添加起始索引(skip(和要显示的数据集数量(take(。

var testDetail = db.Database.SqlQuery<GroupMemberDTVM>("SELECT FirstName, LastName, GroupMemberEmail FROM GroupMember WHERE GroupCode = @p0 ORDER BY " + jtSorting + "", _sid);
var testOutput = (from c in testDetail
                  select c).Skip(jtStartIndex).Take(jtPageSize);


使用jtable(jquery(,排序参数是一个字符串。如何将参数集成到Linq
参数"LastName ASC"。如何将其转换为g.LastName ASC?谢谢

IEnumerable<GroupMemberDTVM> groupMembers = 
(from g in db.groupMember
 where g.GroupCode == _sid
 orderby ?????
 select new GroupMemberDTVM
 {
  FirstName = g.FirstName,
  LastName = g.LastName,
  GroupMemberEmail = g.GroupMemberEmail
}).Distinct().Skip(jtStartIndex).Take(jtPageSize).AsEnumerable();  

jtable jquery排序和linq到sql

我推荐方法语法,因为它更灵活,(imo(更容易阅读。其他改进,使用var关键字,您不需要AsEnumerable。试试这个:

var groupMembers = db.groupMember
    .Where(g => g.GroupCode == _sid)
    .OrderBy(g => g.LastName)
    .Select(g => new GroupMemberDTVM(){
        FirstName = g.FirstName,
        LastName = g.LastName,
        GroupMemberEmail = g.GroupMemberEmail,
    })
    .Distinct()
    .Skip(jtStartIndex)
    .Take(jtPageSize);

此外,我对查询语法并不太熟悉,但我认为您只需要说g.LastName在哪里????s是