【问题标题】:jtable-jquery sorting and linq to sqljtable-jquery 排序和 linq to sql
【发布时间】:2014-07-24 18:58:19
【问题描述】:

编辑/解决方案
我所做的,我不认为它是优雅的,是两个折叠:
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?
参数“姓氏 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();  

【问题讨论】:

    标签: c# jquery linq jquery-jtable


    【解决方案1】:

    我推荐方法语法,因为它更灵活并且(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 在哪里

    【讨论】:

    • 我知道格式应该按照你的回答,我的问题是如何替换 ???这是一个字符串(例如“LastName ASC”到 g.LastName。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2010-12-22
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多