linq查询以按年份和月份的顺序显示记录



我有下表:

工资表:工资、员工工资、基本工资、月工资、年工资、净工资

年份表:年,渴望。(渴望是20132014…)

月份表:月ID,月名称。(月名是一月,二月…)

emp_master:empid,empname

我在我的网格视图中有以下记录,这些记录是我直接从表中获取的,没有任何条件。

我的表格包含如下记录:

企业名称净工资月年

abc 4000 2013年12月

xyz 4000 dec 2013

abc 4000 2014年2月

xyz 4000 2014年2月

abc 2014年3月5000日

xyz 5000 mar 2014

现在我想按月份和年份的顺序显示记录,首先应该显示最高月份的记录,即march,然后feb

我想要这样的输出:

企业名称净工资月年

abc 2014年3月5000日

xyz 5000 mar 2014

abc 4000 2014年2月

xyz 4000 2014年2月

abc 4000 2013年12月

xyz 4000 dec 2013

我已经编写了这样的查询,它只是按照表中的原样显示记录。

var data = (from s in context.Salary_Masters
           select new {name = s.emp_master.empname,
                       s.net_pay,
                       mnth=s.Month_Master.month_name,
                       year=s.Year_Master.year_name });

此处{查询中用作匿名类型的名称、年份和年份是我的网格视图的数据文本字段的名称。}

有人能编辑我的linq查询以满足我的需求吗????

请帮帮我。我是林克的新手,所以我不知道如何写这个问题。

试试这个(不是在飞行中测试制造)

var data = (from s in context.Salary_Masters select new {name = s.emp_master.empname,s.net_pay,mnth=s.Month_Master.month_name,year=s.Year_Master.year_name }).orderby(z=> z.mnth,z.year);

如果你只需要使用月份名称,那么按时间排序就会很困难。如果你的月份ID碰巧是按时间顺序排列的(例如1=1月,2=2月等),你可以这样做:

var data = 
    from s in context.Salary_Masters
    orderby s.year_name, s.month_id
    select new {
        name = s.emp_master.empname,
        s.net_pay,
        mnth = s.Month_Master.month_name,
        year = s.Year_Master.year_name
    };

或者,您可以添加一个数字monthvalue列,并按其进行排序。

对不起,我刚刚注意到你实际上想要按降序排列,所以请这样做:

orderby s.year_name descending, s.month_id descending

这样尝试:

 var data = (from s in context.Salary_Masters
             orderby s.Month_Master.month_name,s.Year_Master.year_name
             select new {name = s.emp_master.empname,
                       s.net_pay,
                       monthName=s.Month_Master.month_name,
                       monthId = s.Month_Master.monthid,
                       year=s.Year_Master.year_name });

或者你可以尝试这样的lambda表达式:

var list = context.Salary_Masters.Select(x=>new {x.emp_master.empname,
                                      x.net_pay,
                                      x.Month_Master.month_name,
                                      x.Month_Master.monthid
                                      x.Year_Master.year_name}).ToList();
list = list.OrderByDescending(x => x.Year_Master.year_name).
ThenBy(x=>x.Month_Master.monthid).ToList();

相关内容

  • 没有找到相关文章

最新更新