简单的订单不工作?

时间:2015-10-23 19:23:00

标签: linq-to-entities

对于我的生活,我可以弄清楚为什么我的OrderBy不在这里工作。有人有什么建议吗?

var result = (from a in AUDIT
                join e in EMPLOYEE on a.KEY equals e.EMPLOYEE_NUMBER
                join j in JOB on e.JOB_CODE equals j.JOB_CODE 
                where a.AUDIT_TYPE == "JUMPSEAT" 
                    && a.TRANSMIT_DATE == null 
                    && a.CO == e.CO 
                    && a.KEY == e.EMPLOYEE_NUMBER 
                orderby e.SHARP_NUMBER
                select new
                {
                    SharpNumber = e.SHARP_NUMBER,
                }).Distinct().ToList();

result.Dump();

更新 它与.Distinct()有关。如果我删除它似乎按顺序执行,但这也会导致额外的记录。任何人都知道如何以独特的方式处理订单?

3 个答案:

答案 0 :(得分:0)

想出来。使用Object中的列而不是table列。

.Distinct().OrderBy(o => o.SharpNumber).ToList();

答案 1 :(得分:0)

关系数据库难以扩展,更容易添加额外的前端/中间层,
所以当你有更大的表并想要所有数据时,更好的方法不是直接在数据库中排序,而是在前端/中间层。

现在,您将从服务器获取不同的数据,而.net将对结果进行排序。

Distinct().ToList().OrderBy(o => o.SharpNumber);

答案 2 :(得分:0)

实际上问题在于您首先订购然后创建对象的代码。然后清楚然后列出。

所以问题首先是它被排序然后创建对象所以我们可以希望对象集合也被排序。但是当你使用不同的时候。所有搞砸了..然后你创建了混乱的列表.. :(繁荣....

  

首先创建对象>那么不同>然后订购。

var result = (from a in AUDIT
            join e in EMPLOYEE on a.KEY equals e.EMPLOYEE_NUMBER
            join j in JOB on e.JOB_CODE equals j.JOB_CODE 
            where a.AUDIT_TYPE == "JUMPSEAT" 
                && a.TRANSMIT_DATE == null 
                && a.CO == e.CO 
                && a.KEY == e.EMPLOYEE_NUMBER 
            select new
            {
                SharpNumber = e.SHARP_NUMBER,
            }).Distinct()
              .OrderBy(c=>c.SharpNumber)
              .ToList();